我想将命令的输出放在bash变量中,然后在其他命令中进一步使用该变量
假设我想要这样的东西
ls | $(variable) |awk '/$variable/{print "here"}'
答案 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"}')