Se você colocar as atribuições antes do script
ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano' ./test.sh
as variáveis estão disponíveis no ambiente do script. A opção -k
trata as atribuições all , não apenas as atribuições pré-comando, como modificações do ambiente.
set -k
./test.sh ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano'
set +k
Em ambos os casos, eval
não é obrigatório e pode ser removido.