Shell有没有办法使用管道来命名变量?

Shell有没有办法使用管道来命名变量?

假设我有一个包含三行的文本文件。它被称为

1
2
3

有没有办法让这成为可能:

$ x='cat a | head -1'

答案1

你想做的事情叫做命令替换,它将一个命令的输出放到另一个命令的命令行上。例如,为其他命令提供参数,或将输出分配给变量。

您几乎拥有正确的语法。您需要$()在您的命令周围使用。例如

x=$(cat a | head -1)或者,因为猫是不必要的,x=$(head -1 a)

也可以使用反引号 (`),但已被认为已过时,因为它们有许多问题(包括无法嵌套它们,以及难以将它们与单引号区分开)。

相关内容