如何将命令的输出放在bash变量中

时间:2013-02-01 03:53:29

标签: linux bash shell

我想将命令的输出放在bash变量中,然后在其他命令中进一步使用该变量

假设我想要这样的东西

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

4 个答案:

答案 0 :(得分:1)

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

variable=`pwd`
echo $variable

答案 1 :(得分:1)

或者

now=`date`

返回标记

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

答案 2 :(得分:0)

我不知道您可以像这样轻松地执行此操作,但我不知道您为什么要将其传输到awk 使用它无论如何这样的剧本。这是两步版本,但我不确定做什么

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

答案 3 :(得分: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"}')