bash – 为什么shell脚本中的空循环无效?
我想让我的
shell脚本无限地等待,并认为下面的代码会这样做.
#!/bin/bash while true do done 但是,上面的脚本报告语法错误.
与编程语言不同,为什么shell脚本期望循环中至少有一个语句? 解决方法
如果您的系统支持它,请使用: sleep infinity 如果您的系统不支持它,请使用间隔较大的睡眠: while :; do sleep 86400; done 注意: >使用while:代替while,可以/将删除不必要的fork,具体取决于实现的真实性(内置于shell中,或作为独立应用程序). 您正在尝试实现繁忙的循环,不要这样做. 繁忙的循环将: >使用100%CPU没有用处
因为它是… bash中while循环的格式如下: while list-1; do list-2; done 如果您不提供list-2,那么您没有正确格式化的while循环. 正如其他人所指出的那样,使用noop(:)或其他任何东西来满足list-2. :记录如下: : [arguments] No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |