o Concha Z usa /bin/sh
se você executar um script executável sem a linha shebang (veja man zshmisc
, seção EXECUÇÃO DE COMANDO ou check out esta resposta para uma lista abrangente). Isso parece codificado. Então, se você não quiser usar o unix-way (add shebang line), você pode usar um alias de sufixo no shell Z para executar todos os arquivos com uma certa extensão com um determinado programa. No seu caso
alias -s zsh=zsh
deve fazer o truque. A forma geral é (como o exemplo acima não é tão claro):
alias -s extension=program
A página man explica como isso funciona:
Se o sinalizador -s estiver presente, defina um alias de sufixo: se a palavra de comando em uma linha de comando estiver no formato text.name
onde texto
é qualquer string não vazia, ela é substituída pelo texto value text.name
. Observe que o nome é tratado como uma string literal, não como
padronizar.
Um espaço à direita em valor não é especial neste caso. Por exemplo,
alias -s ps=gv
fará com que o comando *.ps
para ser expandido para gv *.ps
. Como a expansão de alias é realizada antes de globbing, o *.ps
vai
então ser expandido. Os aliases de sufixo constituem um espaço de nome diferente de outros aliases (portanto, no exemplo acima, ele ainda é
possível
para criar um alias para o comando ps) e os dois conjuntos nunca são listados juntos.
Se você quiser usar scripts que estão localizados em algum lugar no seu $PATH
, usar
alias -s zsh="zsh -o PATH_SCRIPT"
Isso permite a opção PATH_SCRIPT
:
Se a opção PATH_SCRIPT estiver definida e o nome do arquivo não contiver um caminho de diretório (ou seja, não há `/ 'no nome), primeiro o diretório atual e, em seguida, o caminho de comando fornecido pela variável PATH
são pesquisados pelo script.
Por favor, note que o diretório atual é procurado pelo script, mesmo se .
não está no seu PATH
!