linux-數值計算
阿新 • • 發佈:2019-01-02
表示式
表示式 | 說明 | 注意 |
---|---|---|
let C=$A+$B |
let |
- |
C=$[$A+$B] |
$[] |
- |
C=$(($A+$B)) |
$(()) |
- |
C = ` expr $A + $B ` | expr |
中間不得相連 |
支援大部分數值運算,具體可通過
info let
進行檢視。
除錯
選項 | 說明 |
---|---|
-n |
語法檢測 |
-x |
語法檢測<單步執行> |
bash -x godme.sh
指令碼
- 密碼檢查
#!/bin/bash
user=`id -un`
todaySecond=`date +%s`
nowDays=$(($todaySecond / 86400))
lastDays=`grep $user /etc/shadow | cut -d: -f3`
if [ $(($nowDays - $lastDays)) -ge 30 ] ;then
echo "you must be modify you password"
fi
exit 0
exit
function
中的返回用return
,指令碼中的返回使用exit
。
- 包含
返回的時候包含
執行結果
,執行狀態碼
。預設情況下,返回的是腳本當中最後一條命令的狀態。
errorcode
exit 0
,可以手動指定返回碼。
- 檔案許可權
檔案檢測
#!/bin/bash
if [ -e $1 ];then
exit 0
else
exit 1
fi
許可權判斷
#!/bin/bash
if [ $# -eq 1 ] ;then
file=$1
elif [ $# -eq 2 ]; then
file=$2
mark=$1
else
echo "param error"
exit 0
fi
./check $file
if [ $? -eq 1 ];then
echo "file does not exist: $file"
exit 0
fi
if [ "$mark" = "-a" ];then
position="8-10"
elif [ "$mark" = "-o" ];then
position="2-4"
elif [ "$mark" = "-g" ];then
position="5-7"
else
position="2-10"
fi
echo -e `ls -l $file | cut -d' ' -f1 | cut -c$position` "\t $file"
exit
執行結果當返回值
$?
獲取返回值
if
進行判斷勉強相當於
function
使用,雖然只能是簡單狀態返回。而且更像是
模組引用
而不是方法呼叫
。
- 加法器
#!/bin/bash
echo $[ $1 + $2 ]
shift
:剃頭#!/bin/bash echo $1 && shift echo $1 && shift echo $1 && shift
好比佇列,每
shift
一次,$1
就會出隊,後續的補上。也可以
shift n
,指定一次性出隊的元素個數。多個引數的操作,必須等到迴圈才能玩一玩了,現在先這樣吧。