Quero exec
um programa e controlar seus argumentos, incluindo arg0 e ambiente. Usar CI pode ser útil execve
. Posso fazer isso no shell POSIX?
Quero exec
um programa e controlar seus argumentos, incluindo arg0 e ambiente. Usar CI pode ser útil execve
. Posso fazer isso no shell POSIX?
De acordo com a documentação POSIX de Special Builtin Utilities , a sintaxe para exec é
O ambiente do shell de chamada deve ser propagado para o comando , portanto, configurá-lo antes da execução
foo=bar exec cmd
deve funcionar. No entanto, você pode querer considerar o parágrafo Justificativa .Também não existe uma maneira integrada de mexer em argv[0].
uma possível solução alternativa poderia consistir em vincular simbolicamente some_name ao comando antes de
exec some_name
(crédito total para muru )Observe que bash zsh e ksh suportam uma implementação estendida do comando exec:
que, graças à opção -a, permite que o nome fique como
argv[0]
No entanto, nem csh , nem dash , nem fish suportam isso.