【发布时间】:2017-06-02 19:08:07
【问题描述】:
我正在努力传递一个 shell 命令。具体来说,我编写了一个用户将运行的 shell 文件。在其中,根据用户输入编写了另一个 shell 文件。然后,此文件将传递给提交作业的命令。
现在在这个内部 shell 文件中,我有一个包含函数的变量。但是,当我运行用户 shell 脚本时,我无法让这个函数以内部 shell 文件可以使用它的方式传递。
我不能分享我的工作,但我会尝试做一个例子
#User shell script
cat >test.txt <<EOF
#a bunch of lines that are not relevant
var=`grep examples input.txt`
/bin/localfoo -${var}
EOF
# pass test.txt to localfoo2
/bin/localfoo2 /test.txt
当我运行“用户 Shell 脚本”时,它会打印 grep 找不到文件,但我不希望 grep 被评估。我需要按原样编写它,以便在读取“/bin/localfoo2 /test.txt”行时,评估 grep。
我已经尝试了很多方法。我试过双反勾号,我试过使用'echo $(eval $var)'。但是我通过谷歌搜索找到的方法都没有设法以能够完成我想要的方式传递这个 var。
非常感谢您的帮助。
【问题讨论】:
标签: linux shell variables command