如何在bash中在一行中运行两个命令进行循环?

时间:2016-03-31 17:49:52

标签: bash shell

为什么我不能在单行bash循环中运行两个命令?

$ for i in {1..100} do printf %s "$(date)" ; mysql -uroot -e "SHOW SLAVE STATUS\G" | grep "Seconds_Behind_Master" ; sleep 10 ; done
-bash: syntax error near unexpected token `mysql'

但这个简单的版本有效:

for i in {1..3}; do echo $i ; ls ; done

1 个答案:

答案 0 :(得分:8)

支撑扩张后需要;。你可以在简单的例子中使用它,但不能在"破坏"之一:

for i in {1..100}; do printf %s "$(date)" ; mysql -uroot -e "SHOW SLAVE STATUS\G" | grep "Seconds_Behind_Master" ; sleep 10 ; done
                 ^ this one