o que significa: exec 'ksh -c “echo / usr / bin / expectk \” $ 0 \ “- $ *”'

1

Na minha empresa, há muitos scripts de manutenção. Eu encontrei um começo como com:

#!/bin/sh
# the next line restarts using expectk \
exec 'ksh -c "echo /usr/bin/expectk \"$0\" -- $*"'

Mas não entendo por que e como ele reinicia usando o expectk.

Alguém ajuda?

    
por valpa 06.01.2012 / 00:35

1 resposta

1

Esse comando parece muito mais complicado do que precisa ser. Essencialmente, o que está fazendo (e pode ser encurtado) é

#!/bin/sh
exec /usr/bin/expectk $0 -- $*

Seu script é exec ing a saída do comando echo. A versão reescrita acima remove o eco e apenas faz o exec diretamente. No entanto, a melhor maneira de fazer isso é

#!/bin/sh
exec /usr/bin/expectk "$0" -- "$@"

Isso corrige problemas que apareceriam se qualquer um dos argumentos para o script continha espaços.

    
por 06.01.2012 / 01:17

Tags