无论如何都需要while(string)做,就像c中一样
在c中,我们有空终止符,但我不确定bash是否具有它
bash中的[$ string]在有空格时会终止,这不是我想要的空间,如何检测它是否到达string的末尾?
答案 0 :(得分:0)
我假设循环正在删除字符串的一部分,并且当字符串为空时它应该停止。在Bash中执行此操作的方法是:
while [[ $string ]]
或(更明确地)
while [[ -n $string ]]
对于没有[[...]]
的shell,
while [ "$string" ]
或
while [ -n "$string" ]
必须使用引号来防止出现各种问题,包括当字符串仅包含来自$IFS
的字符(通常包括空格字符)时的错误终止。在外壳程序代码上使用Shellcheck可以检测许多引用问题,包括问题中的一个问题(SC2086: Double quote to prevent globbing and word splitting)。