1. 程式人生 > >linux-邏輯組合

linux-邏輯組合

邏輯組合

符號 對照 說明
-a and 內聯與
-o or 內聯或
! not 內聯非

指令碼

一百內能被37整除的數

  • 快捷版
#!/bin/bash
value=1
while((value++ < 100));do
    if ((value%3==0 && value%7==0 ));then
echo $value else continue fi done
  • &&
#!/bin/bash
value=1
while((1));do
   if [ $value -gt 100 ];then
       break;
   elif [ $((value%3)) -eq 0 ] && [ $((value%7)) -eq 0 ];then
       echo $value
   fi
   ((value++))
done
  • -a
#!/bin/bash
value=
1 while((1));do if [ $value -gt 100 ];then break; elif [ $((value%3)) -eq 0 -a $((value%7)) -eq 0 ];then echo $value fi ((value++)) done

[ $((value%3)) -eq 0 ] && [ $((value%7)) -eq 0 ]

[ $((value%3)) -eq 0 -a $((value%7)) -eq 0 ]

&&用於條件連線,-a用於條件組合。

符號 作用 最終條件
&& 外聯與 多個連線
-a 內聯與 內聯多個
外部一個
|| 外聯或 多個連線
-o 內聯或 內聯多個
外部一個

菲波那切數列

#!/bin/bash
if [ $1 -le 0 ];then
    echo "param error"
    exit 1
fi
if [ $1 -eq 1 -o $1 -eq 2 ];then
    echo 1
    exit 0
fi
prev1=`./fb $(($1-1))`
prev2=`./fb $(($1-2))`
echo $((prev1+prev2))

九九乘法表

#!/bin/bash
for line in {1..9};do
    for index in `seq $line`;do
        if [ $line -eq $index ];then
            end="\n"
        else
            end="\t"
        fi
        echo -ne "$index * $line = $((line * index))$end"
    done
done