Quero executar todos os comandos do meu script, por command -p
exemplo:
command -p pwd
Porque pode haver algum comando que irei executar dentro do script cujo nome está sendo usado por algum outro script de usuário customizado e neste caso o command
comando faz com que o comando do sistema seja executado e não o do usuário (esta é uma explicação amigável, se você quiser uma compreensão técnica do que realmente acontece nos bastidores, consulte a página de manual) que é o que eu quero.
Bom, para que eu não precise sempre digitar literalmente " command -p
" no início da linha toda vez que invoco algum comando dentro do script, existe alguma forma de definir o comportamento de command -p
globalmente no script?
Colocaria um caminho de pesquisa POSIX antes de $PATH.
Você descobrirá que o comando acima é fornecido como exemplo na especificação do
command
utilitário padrão .Para que isso funcione, ele precisa ser executado a partir de um shell POSIX para suportar
command -p
.Em sistemas que suportam mais de uma versão do padrão, como no Solaris onde há um /use/xpg6/bin com comandos (incluindo
getconf
) cujo comportamento é diferente daqueles em /use/xpg4/bin, o que você obterá pode depender no ambiente inicial.Se o valor de $PATH afetará o comportamento dos componentes internos do shell também depende do shell.
Seu shell procura arquivos executáveis para
PATH
execução. Você pode excluir diretórios graváveis pelo usuário daPATH
variável para obter uma solução muito mais elegante. Então, no início do script, adicione: