我可以在UNIX shell中执行嵌套或链接命令吗?

时间:2010-09-19 14:28:47

标签: linux command-line ubuntu nested solaris

我可以在UNIX shell中的另一个命令中执行命令吗?

如果不可能,我可以使用上一个命令的输出作为下一个命令的输入,如:

command x然后command y

我想在command y中使用command x的输出?

4 个答案:

答案 0 :(得分:12)

您可以使用反引号。

例如,这将捕获file.txt

  

cat`echo file.txt`

这将打印日期

  

回显日期是'date`

后引号之间的代码将被执行并被其结果替换。

答案 1 :(得分:6)

你可以这样做;

x=$(grep $(dirname "$path") file)

此处dirname "$path"将首先运行,其结果将被替换,然后grep将运行,在dirname

中搜索file的结果

答案 2 :(得分:3)

你到底想要做什么?从您执行的命令中不清楚。也许如果你描述你正在寻找什么,我们可以指出你正确的方向。如果要对“find”命令返回的一系列文件(或目录)名称执行命令,则Colin是正确的,您需要查看“find”的“-exec”选项。如果您希望对文件中列出的或来自stdin的一堆参数执行命令,则需要查看“xargs”命令。如果要将单个命令的输出放到另一个命令的命令行上,那么使用“$(command)”(或'command'[用反引号替换')将完成这项工作。有很多方法可以做到这一点,但不知道它是什么,你正在尝试它很难更有帮助。

答案 3 :(得分:-1)

这是我使用嵌套系统命令的示例。 我在 find 命令之上运行了“ls -ltr”。它执行 它在 find 输出上串行。

ls -ltr $(find .-name "srvm.jar")