将变量传递给SH脚本中的嵌入式“For Loop”

时间:2014-05-21 20:14:33

标签: bash for-loop sh

我在FreeBSD中有一个SH脚本,我在将变量“count”传递给“For循环”时遇到问题。

如果我添加

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

}

2 个答案:

答案 0 :(得分:0)

#!/bin/bash

list="foo bar baz"
count=1

for d in $list; do
  if [ $count -eq 1 ]; then
    echo "Tada"
    count=2
  fi
  echo $d
done 

那么现在问题出在哪里?我没有FreeBSD来检查它,所以告诉我它是否适合你。

答案 1 :(得分:0)

解决方案 - 我的问题是我在此脚本的顶部使用了相同的变量名称。

count=$(cat $data | wc -l)
echo "Found count [ $count ]"
count=1

所以,我的解决方案是更改" IF语句使用的变量名称"

"计数"到" pcount"


count=$(cat $data | wc -l)
echo "Found count [ $count ]"
pcount=1

我不明白为什么重新设置第二个计数= 1,没有用?