1

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

假设我想要这样的东西

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

4

4 回答 4

1

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

variable=`pwd`
echo $variable
于 2013-02-01T04:03:44.693 回答
1

或者

now=`date`

后记号

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

于 2013-02-01T04:07:30.323 回答
0

我不知道您可以像这样在一个步骤中轻松完成它,但我不知道您为什么要像这样在脚本中使用它awk 并使用它。这是两步版本,但我不确定它的作用

variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
于 2013-02-01T03:56:08.630 回答
0

你可以试试:

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

注1:/$variable/用双引号括起来,否则不会被命令输出代替。

注意2:上述命令可能会失败,因为ls可能包含“/”或换行符,这将破坏awk命令。您可以更改lsls | tr '\n' ' ' | tr -d '/' | sed 's/ *$//g'(用空格替换所有换行符;删除所有斜杠;删除尾随空格),具体取决于您的目标。

注3:为避免变量赋值污染当前shell的环境,可以将上面的命令用括号括起来,即(variable=$(some_command); awk "/$variable/"'{print "here"}')

于 2013-02-01T04:00:18.280 回答