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

标签 linux shell variables command

我正在努力传递 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。

非常感谢您的帮助。

最佳答案

您可以尝试使用单引号 (')。 您必须将单引号放在 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 命令,我希望这个方法能有所帮助。

关于linux - 如何在不评估命令的情况下从 shell 脚本向 shell 脚本编写命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41718839/

相关文章:

javascript - (Javascript)如何在两个用户输入的变量之间获取随机数?

javascript - 如何组合多个 onclick 事件/元素

php - 在类中访问 session 变量

linux - git send-mail 发送邮件失败

php - PHP 如何优雅地关闭本地套接字连接...?

macos - 在 Mac OS-X 中将 tail -f 与多个 Grep 命令一起使用时无输出

python Fabric : How to handle arbitrary remote shell prompt for input?

linux - 如何显示文件的第二行并将字符转换为大写

linux - 了解 vi 编辑器的内部结构

linux - 在 Raspberry Pi 3 板上构建驱动程序时出错