賦值時的 『=』左右不能有空格。運算表示式『+』等左右必須有空格。中括號和裡面的東西之間必須有空格。
$*和$@在獲取命令列引數時有區別。在陣列時沒區別,$和$都是獲取
陣列的所有引數
單引號原樣輸出,不管變數,除非在給變數再加對單引號。雙引號會解析變數
expr表示式計算。
(1)注意用反引號包圍
val=`expr 2 + 2` #val = 2
(2) 條件表示式用於if時,要放在方括號之間,且條件運算子左右必須有空格。
但用於while時,整個表示式用圓括號括起來
正確寫法
if [$a == $b]
then
.....
fi
錯誤寫法1
if [$a==$b]
then
.....
fi
錯誤寫法2
if $a == $b
then
.....
fi
用於while時
#!/bin/bash
int=1
while(( $int<=5 ))
do echo $int
let "int++"
done
(3)乘號*必須加轉義符號
val=
expr 2 * 2``
(4)更多關係運算子
-eq -ne -gt -lt -ge -le
[$val1 -eq $val2]
(5)字串關係運算子=!=
-n #a="123";if [ -n $a ]
-z$
(6)檔案測試運算子test
echo
(1)echo -e 「it is a test /n」 #-e
開啟轉義,會把\n
識別為換行符
(2)顯示結果定向至檔案
echo "it is a test" > myfile
(3)read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數
read name
echo "$name it is a test"
[root@www ~]# sh test.sh
ok #標準輸入
ok it is a test #輸出
printf
$ printf "a string, no processing:\n" "a\nb"
a string, no processing:
if else
if condition
then
comand1
comand2
....
comandn
fi
寫成一行。加分號。
if condition;then comand;fi
(2) if elif else
a=10
b=20
if [ $a == $b ]
then
echo "a 等於 b"
elif [ $a -gt $b ]
then
echo "a 大於 b"
elif [ $a -lt $b ]
then
echo "a 小於 b"
else
echo "沒有符合的條件"
fi
for迴圈
for var in item1 item2 ... itemn
do command1
command2
...commandn
done
寫成一行
for var in item1 item2 ... itemn; do command1; command2… done;
for迴圈的in後面可以跟命令,但要加反引號比如
for
filein`
ls`do var=
`ls -l $
|awk''`
#賦值時要執行指令的話也要加反引號if[
$ -le 5120 ]
then
tar czf $.tar.gz $
fidone
while
while condition
do command
done
case
case 值 in
模式1)
command1
command2
...commandn
;;模式2)
command1
command2
...commandn
;;esac
例子
echo '輸入 1 到 4 之間的數字:'
echo '你輸入的數字為:'
read anum
case $anum in
1) echo '你選擇了 1'
;;2) echo '你選擇了 2'
;;3) echo '你選擇了 3'
;;4) echo '你選擇了 4'
;;*) echo '你沒有輸入 1 到 4 之間的數字'
;;esac
break會跳出所有後面的迴圈。continue會繼續執行下一次迴圈
函式輸入輸出重定向
各種括號的作用
陣列
a=
(1 2 3 4)
pos=0
echo a[
$pos
]#輸出「a[0]」 不會輸出a[0]所存的數
echo
$#輸出「1」
練習
(1) 編寫乙個指令碼,列印任何數的乘法表
如輸入3則列印
(2)快排
linux shell 程式設計
bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...
linux shell 程式設計
1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...
Linux Shell 程式設計
檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...