我希望能够将命令的输出放到Bash变量中,然后在其他命令中进一步使用该变量。
假设我想要像这样:
ls | $(变量) | awk '/$variable/{print "here"}'
variable=`pwd`
echo $variable
或者
now=`date`
反引号
对我来说更容易,因为它适用于任何shell或perl
我不知道你是否可以像那样轻松地一步完成它,但我也不知道为什么你会将其导入到awk
中并像那样在脚本中使用它。这是两步版本,但我真的不确定它是做什么的:
variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
;
。为什么它需要是单管道? - Carl Norum你可以尝试:
variable=$(ls); awk "/$variable/"'{print "here"}'
/$variable/
被双引号包围,否则它将不会被命令输出替换。ls
的输出可能包含“/”或换行符,这将破坏awk
命令。您可以根据需要将ls
更改为类似于ls | tr '\n' ' ' | tr -d '/' | sed 's/ *$//g'
(将所有换行符替换为空格;删除所有斜杠;删除尾随空格)。(variable=$(some_command); awk "/$variable/"'{print "here"}')
。