【发布时间】:2016-01-02 11:56:05
【问题描述】:
我有以下 bash 脚本
i=1
while SH= read -r LINE
do
if echo $LINE | grep 'Network connection down!'
then
echo "shutdown"
exit
elif echo $LINE | grep 'Network connection available'
then
echo $LINE
((i++))
fi
done < <(tac /var/log/messages)
这个脚本到目前为止有效。我不是 shell 脚本专家。我正在尝试在第一个条件语句中添加一个 and 运算符,就像这样
if echo $LINE | grep 'Network connection down!' && $i<4
谁能帮我看看如何在 shell 脚本中完成这项工作,到目前为止我尝试过的每个变体都以各种错误结束,例如
conditional binary operator expected
以及我可以描述的其他各种。非常感谢大家提前:)
【问题讨论】:
-
我想你想要的是
[[ $i < 4 ]] -
喜欢
if echo $LINE | grep 'Network connection down!' && [[$i<4]]? -
@lindsaymacvean:注意
[[ ... ]]中的空格 -
是的,但是在
<周围加空格,这很重要 -
...因为
[[ i < 4 ]]不会做你想做的事情如果i=39。
标签: bash shell binary-operators