【发布时间】:2014-07-10 16:05:05
【问题描述】:
我在 FreeBSD 中有一个 SH 脚本,但在将变量“count”传递给“For Loop”时遇到问题。
如果我添加
count=1
行后
for d in $list; do
然后它可以工作,但我需要在这个“for循环”之前设置变量。 “count=2”可防止“IF 语句”在完成“for d in $list”时再次运行。
我认为这与局部/全局变量设置有关。但是我尝试了几种组合都没有成功。
function(){
for i in $data; do
check=0
count=1
[ script lines removed (N/A) ]
if [ "$check" == "0" ]; then
[ script lines removed (N/A) ]
for d in $list; do
if [ "$VAR" == "ABC" ]; then
:
else
if [ "$count" == "1" ]; then
[ script lines removed (N/A) ]
[ THIS "IF" SECTION NEEDS TO RUN ONCE ONLY ! ]
count=2
else
:
fi
fi
done
else
:
fi
done
}
【问题讨论】:
-
我一直使用制表符来缩进?这不是正确的方法吗?另外,我尝试了您的脚本,但添加了另一个 for 循环并且它有效。但它在我的脚本中仍然不起作用。我也试过“-eq 1”
-
使用
[ comment ]使得无法剪切并粘贴示例并运行它。试试# lines removed (N/A)。 -
那么您希望
if部分在for 循环的每次迭代中最多运行一次,还是总共只运行一次? -
@William,是的,“If 部分”需要在“for d in $list”的每次迭代中运行一次。请参阅下面的我的答案。我使用了 count 变量两次,当我使用“pcount”而不是“count”时,脚本工作了。那么“count = 1”由于某种原因没有成立?很抱歉出现“#”问题。