獲取變數的方式:
1、echo $path
2、echo $
3、echo "$path"
引數的提取:
$# *****= 引數的個數
$n *****= 第n個引數
$0 *****= 當前指令碼名稱
$@ *****= 取出所有引數
shift *****= 引數左移
執行過程:
2、編寫指令碼內容(單獨講解)
3、新增執行許可權:chmod a+x abc.sh
4、當前目錄執行:./abc.sh
指令碼編寫:
1、編寫指令碼頭:#! /bin/bash *****= 宣告指令碼直譯器(不寫時會有預設的直譯器)
2、注釋的編寫:以"#"作為標識,單行注釋!
3、編寫指令碼內容:echo helloworld
for...in語句:
for x in `cat a.txt`; do echo $x; done *****= 迴圈取出檔案中的所有單詞,並迭代輸出
for(())語句:
for(( i=0; i<10; i++ )); do echo $i; done
for99.sh(列印九九乘法表):
#!/bin/bash
for((i=1; i<10; i++)); do
for((j=1; j<=i; j++)); do
echo -en "$j"x"$i"=$((j*i))"\t";
done
echo;
done
shift.sh(測試shift的作用):
#!/bin/bash
for((i=1; i<10; i++));do
echo $@
shift;
done
執行該指令碼:./shift.sh 1 2 3 4 5 6 7 8 9
if語句:
語法:if ...; then ...;elif ...; then ...;else ...; fi
if字串變數表示式:
if [ $a=$b ] *****= 符號"="用作賦值時兩邊不能有空格
if [ $a = $b ] *****= 符號"="用作判斷時兩邊必須有空格
if [ -n $a ] *****= 變數a非空,等價於:if[ $a ]
if [ -z $a ] *****= 變數a為空
if整數變數表示式:
if [ a -eq b ] *****= a等於b
if [ a -gt b ] *****= a大於b
if [ a -lt b ] *****= a小於b
if [ a -ne b ] *****= a不等於b
if [ a -ge b ] *****= a大於等於b
if [ a -le b ] *****= a小於等於b
age.sh(判斷年齡對應的是少年、中年還是晚年):
#!/bin/bash
i=10
if [ $i -lt 30 ];
then echo young;
elif [ $i -lt 50 ];
then echo middle;
else echo old;
fi
while語句:
while9.sh:
#!/bin/bash
i=1while(($i<10));do
echo $i
i=$((i+1));
done
while99.sh:
#!/bin/bash
i=1while((i<10)); do
j=1while((j<=i)); do
echo -ne "$j"x"$i"=$((j*i))"\t"
j=$((j+1));
done
i=$((i+1))
echo;
done
case語句:
case.sh:
#!/bin/bash
case $1 in
helloworld | tom ) echo 1 ;;
hello ) echo 2 ;;
* ) echo 3 ;;
esac
使指令碼在每個目錄都能識別並執行:將指令碼放在/usr/local/bin下 Shell 指令碼編寫
shell 指令碼與 windows dos 下的批處理相似,也就是用各類命令預先放入到乙個檔案中,方便一次性執行的乙個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比 windows 下的批處理更強大,比用其他程式設計程式編輯的程式效率更高,它使用了 linux unix 下的命令。方法一...
shell指令碼編寫
echo echo n不換行輸出,echo e會處理特殊字元,比如有 n則會換行 printf 不自動換行輸出 print 自動換行輸出 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。指令碼執行的當前程序id號 後台執行的最後乙個程序的id號 與 相同,但是使用時加引號,並在引號中...
shell指令碼編寫注意
這八個建議,於鍵者幾年來編寫 shell 指令碼的一些經驗和教訓。事實上開始寫的時候還不止這幾條,後來思索再三,去掉幾條無關痛癢的,最後剩下八條。毫不誇張地說,每條都是精挑細選的,雖然有幾點算是老生常談了。shell 指令碼的第一行,之後應該是什麼?如果拿這個問題去問別人,不同的人的回答可能各不相同...