Como posso usar “emulate sh” no zsh para trabalhar com “. myscript.sh ”?

3

Estou usando emulate sh -c ". $HOME/myscript.sh" e está funcionando até agora.

No entanto, se eu estiver em ~ e tentar fazer emulate sh -c ". myscript.sh" , receberei .: no such file or directory: myscript.sh. . Por quê?

    
por Somebody still uses you MS-DOS 03.01.2014 / 01:09

1 resposta

6

O . builtin procura o argumento passado pelo script no caminho de pesquisa do comando ( $PATH ) se ele não contiver um / . Isso é verdade tanto em shells POSIX quanto em zsh nativo, então, sem surpresa, também é verdade no modo de emulação do zsh.

O source embutido em bash e zsh é idêntico a . , exceto que nenhuma consulta PATH acontece, um nome de script que não contém um / é procurado no diretório atual.

emulate sh -c 'source myscript.sh'

ou

emulate sh -c '. ./myscript.sh'
    
por 03.01.2014 / 01:42

Tags