Eu tenho um script bash chamado a
localizado /home/agrillet/
onde eu faço este comando:
BOOTSTRAP_MODIF="stat -c %Y '/home/agrillet/a'"
A saída é:./a: line 60: stat -c %Y '/home/agrillet/a': No such file or directory
Mas quando executo o mesmo comando no meu terminal, funciona:
$ stat -c %Y '/home/agrillet/a'
1517831544
Não estou executando o comando como root em ambos os casos, alguém pode explicar o que está acontecendo e como obter informações sobre o script durante a execução?
Se eu usar outro comando no script, como cat /home/agrillet/a
, poderei imprimir o script a partir do próprio script.
Este:
Define a variável
BOOTSTRAP_MODIF
para a stringstat -c %Y '/home/agrillet/a'
. Não produz nenhuma saída.Se você expandir a variável posteriormente, como
"$BOOTSTRAP_MODIF"
(com aspas), obterá exatamente essa string, como uma string. A mensagem de erro se parece com o Bash tentando executar um comando com esse nome (espaços e tudo), que você não possui.Você pode executar o script com
bash -x
(oush -x
) ou usarset -x
dentro do script para ver os comandos que o shell realmente tenta executar.Consulte BashFAQ 050 sobre como salvar um comando para uso posterior.