如何将Bash命令的输出放入变量中

3

我希望能够将命令的输出放到Bash变量中,然后在其他命令中进一步使用该变量。

假设我想要像这样:

ls | $(变量) | awk '/$variable/{print "here"}'


1
你需要一个更好的示例问题。当前的示例没有任何意义。我们真的需要看到1.样本输入,2.所需输出,3.实际输出,4.您尝试解决实际问题的代码。祝你好运。 - shellter
4个回答

3
为了将命令输出放入变量中,您可以在bash中使用以下格式:

为了将命令输出放入变量中,您可以在bash中使用以下格式:
variable=`pwd`
echo $variable

1

或者

now=`date`

反引号

对我来说更容易,因为它适用于任何shell或perl


0

我不知道你是否可以像那样轻松地一步完成它,但我也不知道为什么你会将其导入到awk中并像那样在脚本中使用它。这是两步版本,但我真的不确定它是做什么的:

variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"

实际上,我想在一行代码中完成它。有没有办法? - user2027303
你可以加一个;。为什么它需要是单管道? - Carl Norum

0

你可以尝试:

variable=$(ls); awk "/$variable/"'{print "here"}'

注意1:/$variable/被双引号包围,否则它将不会被命令输出替换。
注意2:上述命令可能会失败,因为ls的输出可能包含“/”或换行符,这将破坏awk命令。您可以根据需要将ls更改为类似于ls | tr '\n' ' ' | tr -d '/' | sed 's/ *$//g'(将所有换行符替换为空格;删除所有斜杠;删除尾随空格)。
注意3:为了避免变量赋值污染当前shell环境,您可以将上述命令用括号括起来,即(variable=$(some_command); awk "/$variable/"'{print "here"}')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接