我想将命令的输出放在 bash 变量中,然后在其他命令中进一步使用该变量
假设我想要这样的东西
ls | $(variable) |awk '/$variable/{print "here"}'
要将命令输出放入变量中,您可以在 bash 中使用以下格式
variable=`pwd`
echo $variable
或者
now=`date`
后记号
这对我来说更容易,因为它适用于任何 shell 或 perl
我不知道您可以像这样在一个步骤中轻松完成它,但我不知道您为什么要像这样在脚本中使用它awk
并使用它。这是两步版本,但我不确定它的作用:
variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
你可以试试:
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"}')