Eu tenho o seguinte script em um arquivo executável test-shebang.mjs
e queria usá-lo zx
para executar meu script, mas preciso que ele ~/.zshrc
seja originado antes disso:
#!/usr/bin/env -S zsh -c 'source ~/.zshrc; zx --install $@' --
console.log("work pls")
./test-shebang.mjs
funciona bem no Ubuntu:
❯ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
❯ zsh --version
zsh 5.8.1 (x86_64-ubuntu-linux-gnu)
Mas quando copio o mesmo script no macOS, recebo este erro:
❯ ./test-shebang.mjs
zsh:1: unmatched '
❯ zsh --version
zsh 5.9 (x86_64-apple-darwin23.0)
❯ sw_vers
ProductName: macOS
ProductVersion: 14.4
BuildVersion: 23E214
Por que isso acontece?
Eu tentei bash
também, mas também encontrei erros. FWIW, estou fazendo essa maneira indireta de fazer as coisas porque instalei zx
através pnpm
do qual ele próprio é instalado brew
e prefiro não definir PATH
o que apenas tornaria o script mais longo.