Несколько Eval теряет переменные

У меня есть сценарий test.sh:

 #!/bin/bash           
 declare -x "v"="24127"
 echo "$v"      #works anyway
 eval echo "$v" #works anyway
 eval "$@"      #works fine if not in second eval       
 "$@"           #works same as above but without && and | support

Если я назову этот сценарий так: ./test.sh echo \$v он работает нормально, но таким образом && и | (например, ./test.sh echo \$v \&\& echo not works) не работают, если я передаю их в качестве аргументов, поэтому я попытался использовать eval, и проблема возникает, когда я вызываю этот скрипт из другого скрипта, например так: eval test.sh echo \$v, мне нужно вызывать их таким образом дважды, так как я передаю их вдвое больше параметров (команд) с && и |. Так почему двойной вызов этого скрипта из eval приводит к потере переменных внутри скрипта eval? Любой способ исправить это или любой другой обходной путь для выполнения аргументов в качестве команд с возможностью использовать переменные, которые объявлены в том же сценарии?

0
задан 22 June 2018 в 04:02

0 ответов

Другие вопросы по тегам:

Похожие вопросы: