我有一个bash命令,
a=`xyz | head -n 1 | awk '{print $2}'`
用于获取版本号
我多次使用它,为了避免冗余,我决定将它存储为字符串并在需要时执行它,但现在只有xyz的stdout存储到变量中。
我正是这样做的,
cmd="xyz | head -n 1 | awk '{print \$2}'"
a=`$cmd`
我做错了什么?怎么解决?还建议是否有更简单/更好的方法来实现它。
答案 0 :(得分:4)
建议是否有更简单/更好的方法来实现它。
您可以将命令缩短为:
xyz | awk '{print $2; exit}'
您可以为此创建一个函数,而不是存储在字符串中:
mycmd() {
xyz | awk '{print $2; exit}'
}
并将其用作:
a=$(mycmd)
答案 1 :(得分:1)
似乎您只需要命令xyz
输出第一行的第二个字段,并将其存储在变量a
中。那么为什么不直接使用Bash呢?
read _ a _ < <(xyz)