重击字符串while循环

时间:2018-11-22 01:26:57

标签: bash shell

无论如何都需要while(string)做,就像c中一样

在c中,我们有空终止符,但我不确定bash是否具有它

bash中的[$ string]在有空格时会终止,这不是我想要的空间,如何检测它是否到达string的末尾?

1 个答案:

答案 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)。