【发布时间】:2015-08-25 03:31:15
【问题描述】:
我对 bash(一般编程)比较陌生,并且大部分时间都是自学的,但我有一个 while 循环,只有在满足所有条件时才应该退出。
while [[ "$var1" != "$var1_tgt" ]] && [[ "var2" != "$var2_tgt" ]] && [[ "$var3" != "$var3_tgt" ]] && [[ "$var4" != "$var4_tgt" ]]; do LOOP...; done
我似乎遇到的问题(我认为)在于循环的评估。当我运行脚本时,如果只满足一个条件,它将中断,但我希望循环仅在满足所有条件时才中断。也就是说,当 var# 等于所有 var 的 var#_tgt 时,循环才会中断。据我所知,使用“&&”应该意味着在循环退出之前必须满足所有条件,但它不起作用的事实意味着我错过了一些东西。感谢您为解决这个问题提供的任何帮助。
【问题讨论】:
-
你能帮助我们了解这个脚本实际上在做什么吗?例如,您可能从
$var2_tgt匹配$var开始,$var2_tgt匹配$var2,然后随着循环的进行,一个或多个变量将被更改,因此它们不再匹配目标。如果它们不匹配,你就会跳出循环。我说对了吗?如果是这样,您能否为我们提供设置变量的示例代码,以便我们测试事情的运行方式?
标签: bash while-loop