的问题是这样的:的bash写一个循环来运行一个命令
有一个叫run
脚本,我需要改变的run
操作,以使run
输出的第2场为0(请注意:这不是run
的输出,但它的一部分)。我只是不知道如何判断循环的run
输出的第二个字段的值。
有没有人有任何好点子?谢谢。 for循环
command | awk '($2 == 0) {print "zero detected"}'
论一个:
的问题是这样的:的bash写一个循环来运行一个命令
有一个叫run
脚本,我需要改变的run
操作,以使run
输出的第2场为0(请注意:这不是run
的输出,但它的一部分)。我只是不知道如何判断循环的run
输出的第二个字段的值。
有没有人有任何好点子?谢谢。 for循环
command | awk '($2 == 0) {print "zero detected"}'
论一个:
看这个片段:
out=$(command | awk '{print $2}')
((out)) || echo "zero detected"
或简单地
command | while read a b c d; do
((b)) || echo "zero detected"
done
注: ((...))
是算术命令,该命令返回一个如果表达式为非零,则退出状态0;如果表达式为零,则退出1。如果需要副作用(分配),也可用作“let”的同义词。见http://mywiki.wooledge.org/ArithmeticExpression
捕捉运行的输出在数组中,并修改这样的第二个元素:
res=($(echo 1 2 3 4))
# show whole array
echo ${res[@]}
1 2 3 4
# show element 2 with index 1:
echo ${res[1]}
2
# modify second element:
res[1]=0
# verify modified element:
echo ${res[1]}
0
# verify whole thing:
echo ${res[@]}
1 0 3 4
所以你的命令:
res=($(run))
res[1]=0
# usage of manipulated result:
echo ${res[@]}
非常感谢。这非常有帮助! – user1224398 2012-03-14 16:44:38
但怎么看如果该值等于0代码 – user1224398 2012-03-14 00:12:44
看到我的文章编辑 – 2012-03-14 00:14:53
非常感谢您的帮助!我真的需要在算术表达式上做一些功课.. – user1224398 2012-03-14 16:47:29