Por razões de segurança, sudo
joga fora as funções do shell e a maioria das variáveis de ambiente antes de executar seu processo filho.
Você precisa incluir a definição de myfunction
em test.sh
.
Condições iniciais: Eu defini uma função e a exporto:
myfunction () { echo OK ; }
export -f myfunction
Eu tenho um arquivo bash simples: test.sh
#!/bin/bash
myfunction
Teste OK com o usuário atual: Se eu correr:
bash test.sh
Funciona:)
Não funciona com o sudo: Mas se eu correr no sudo:
sudo bash test.sh
Eu tenho o erro:
test.sh: ligne2: myfunction : commande introuvable
que significa
test.sh: line2: myfunction : command not found
Pergunta
Por que minha função não funciona no sudo? Como isso pode funcionar no sudo?
Muito obrigado:)
Por razões de segurança, sudo
joga fora as funções do shell e a maioria das variáveis de ambiente antes de executar seu processo filho.
Você precisa incluir a definição de myfunction
em test.sh
.
Tags command-line bash