假设我有一个包含三行的文本文件。它被称为
1
2
3
有没有办法让这成为可能:
$ x='cat a | head -1'
答案1
你想做的事情叫做命令替换,它将一个命令的输出放到另一个命令的命令行上。例如,为其他命令提供参数,或将输出分配给变量。
您几乎拥有正确的语法。您需要$()
在您的命令周围使用。例如
x=$(cat a | head -1)
或者,因为猫是不必要的,x=$(head -1 a)
也可以使用反引号 (`),但已被认为已过时,因为它们有许多问题(包括无法嵌套它们,以及难以将它们与单引号区分开)。