繁体   English   中英

如何在不评估命令的情况下从Shell脚本向Shell脚本编写命令

[英]How can I write a command to shell script from a shell script without evaluating the command

我正在努力通过一个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

当我运行“ User Shell Script”时,它会打印grep找不到文件,但是我不希望对grep进行评估。 我需要按原样编写它,以便当读取行'/ bin / localfoo2 /test.txt'时,将对grep进行评估。

我已经尝试了很多东西。 我已经试过使用双背刻度线,我尝试过使用'echo $(eval $ var)'。 但是我通过谷歌搜索发现的所有方法都无法成功地通过此var来实现我想要的功能。

非常感谢您的帮助。

您可以尝试使用单引号(')。 您必须将单引号放在grep命令之前和grep命令的末尾,如下所示。

#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

我不明白您必须在哪里执行该grep命令。 如果要在localfoo脚本中执行grep命令,希望此方法会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM