我有一个bash命令,如何使用反引号在命令中运行?
a=`xyz | head -n 1 | awk '{print $2}'`
这是用来获取版本号
我使用它的次数,避免冗余,我决定把它存储为一个字符串,并执行它每当我需要,但现在只有xyz的stdout被存储到变量。
这是我如何做,
cmd="xyz | head -n 1 | awk '{print \$2}'"
a=`$cmd`
我在做什么错?如何解决它?还建议如果有一个更简单/更好的方式来实现它。
我有一个bash命令,如何使用反引号在命令中运行?
a=`xyz | head -n 1 | awk '{print $2}'`
这是用来获取版本号
我使用它的次数,避免冗余,我决定把它存储为一个字符串,并执行它每当我需要,但现在只有xyz的stdout被存储到变量。
这是我如何做,
cmd="xyz | head -n 1 | awk '{print \$2}'"
a=`$cmd`
我在做什么错?如何解决它?还建议如果有一个更简单/更好的方式来实现它。
建议是否有更简单/更好的实现方法。
你命令可以缩短为:
xyz | awk '{print $2; exit}'
而且你可以创建这样的功能,而不是一个字符串存储:
mycmd() {
xyz | awk '{print $2; exit}'
}
而且使用它作为:
a=$(mycmd)
看来你只想要第一场第二场ne命令xyz
的输出,并将其存储在变量a
中。那么为什么不直接使用Bash来做到这一点?
read _ a _ < <(xyz)
什么OP做错了引用包含shell元字符的命令(管道),他们失去了它们的效果(一切都以'xyz'的参数结束)。使用'eval'可以解决这个问题,但功能非常简洁。 –