数値を含む 2 つの変数を比較するシェル スクリプトを作成しました。変数に同じ番号が含まれている場合、スクリプトは正常に実行されます。ただし、最初の変数 (数値) が 2 番目の変数 (数値) より大きい場合は失敗します。
ここにシェルスクリプトがあります。注: LST1=51228、LST2=34152
#!/bin/ksh
LST1=`cat /tmp/1.lst`
LST2=`cat /tmp/2.lst`
echo $LST1 $LST2
if [[ $LST2 -gt $LST1 ]];then
cat $LST2 >/tmp/0.cmp
else
echo "do nothing" >/tmp/0.cmp
fi
実行時エラーは次のとおりです。
#!/bin/ksh
LST1=`cat /tmp/1.lst`
+ + cat /tmp/1.lst
LST1=34152
LST2=`cat /tmp/2.lst`
+ + cat /tmp/2.lst
LST2=51228
echo $LST1 $LST2
+ echo 34152 51228
34152 51228
if [[ $LST2 -gt $LST1 ]];then
cat $LST2 >/tmp/0.cmp
else
echo "do nothing" >/tmp/0.cmp
fi
+ [[ 51228 -gt 34152 ]]
+ cat 51228
+ 1> /tmp/0.cmp
cat: Cannot open 51228: No such file or directory