Linuxのシェルプログラミングエラー

Linuxのシェルプログラミングエラー

コードを修正する必要がありますか?

i=0; bil_genap=0;  
bil_ganjil=0;  
echo -n "Batas loop : ";  
read batas;  

if [ -z $batas ] | [ $batas -lt 0 ]; then  
    echo "Ops, tidak boleh kosong atau Batas loop harus >= 0";  
    exit 0;  
fi   
while [ $i -le $batas ]; do   
    echo -n "$i,";  
    if [ `expr $i % 2` -eq 0 ]; then   
        let bil_genap=$bil_genap+1;  
    else  
        let bil_ganjil=$bil_ganjil+1;  
        let i=$i+1;   
    fi  
done  

ベストアンサー1

マイナーな問題に加えて、次の点に下線を引く必要があります。

if [ -z $batas ] | [ $batas -lt 0 ]; then  

~になる

if [ -z $batas ] || [ $batas -lt 0 ]; then  

代わりに:

if [ `expr $i % 2` -eq 0 ]; then  

あなたはそれを使用することができます

if (( $i % 2 == 0 )); then  

おすすめ記事