0

ファイル $2 からの入力: 1 -> 2

while read -a line; do

  if (( ${line[2]} > linesNumber )); then
  echo "Graph does not match known sites4"
    exit
  fi

done < "$2"

if条件内の何らかの理由で、の値は${line[2])ありません2 が、値を外側に出力するとif:

echo `${line[2]}`

2
4

1 に答える 1

1

なにlinesNumber?入れても$linesNumberどこから来たの?

行番号を追跡している場合は、それを設定してインクリメントする必要があります。これが私のサンプルプログラムとデータです。それはあなたの例に触発されていますが、あなたが望むことを正確には行いません。ifただし、行番号を追跡する変数の設定方法、行番号の増分方法、およびステートメントでの使用方法を示しています。

foo.txt:

this 1
that 2
foo  4
barf 4
flux 5

プログラム:

lineNum=0
while read -a line
do
    ((lineNum++))
    if (( ${line[1]} > $lineNum ))
    then
        echo "Line Number Too High!"
    fi
    echo "Verb = ${line[0]}  Number = ${line[1]}"
done < foo.txt

出力:

Verb = this  Number = 1
Verb = that  Number = 2
Line Number Too High!
Verb = foo  Number = 4
Verb = barf  Number = 4
Verb = flux  Number = 5
于 2012-12-30T22:39:02.420 に答える