bash 指令碼程式設計一 檔案頭,註釋 和 變數
阿新 • • 發佈:2019-01-26
檔案開頭
#!/bin/bash
#! 是所有linux指令碼檔案開頭的符號, 後面的/bin/bash表示是使用/bin/bash為直譯器來執行本檔案的指令碼
執行檔案
bash some.sh 或者 sh some.sh 也行,原因是檔案頭已經說明了這是bash直譯器, 所以不會被dash誤認
或者
./some.sh 這裡需要可執行許可權 chmod +x ./some.sh
試一下:
呼叫一個基本的Linux命令,
echo "hello,world"
儲存為test.sh檔案,開啟執行許可權:
sudo chmod +x ./test.sh
執行吧:./test.sh
看到了hello,world.
除錯
用-x引數執行即可bash -x some.sh
會列印每一條語句
註釋#
新增一個註釋吧,用#開頭(pound sign)的所有字元都是註釋,除了第一行以外
#!/bin/bash
echo "hello,world" #this is a test
#後面的文字執行的時候被忽略了預定義變數
bash提供了一些預定義的變數供程式設計使用,具體可參考文件:
這裡使用幾個:
#!/bin/bash
echo "hello,world" #this is a test
echo $BASH
echo $LANG
echo $USER
echo $PWD
顯示結果如下:注意,變數名是大小寫敏感的,並且預定義的變數名都是全大寫。[email protected]:~/Ubuntu One$ ./test.sh hello,world /bin/bash en_US.UTF-8 chenshu /home/chenshu/Ubuntu One
自定義變數
現在自己定義個變數,然後用一下試試看。
me="ok"
echo $me
注意,=號左右不能有空格,和編寫其他程式規範不一樣。加了空格程式就會錯誤。
引用變數
$是取變數的值的運算子。正式寫法是${variable-name} , 經常不使用 { } 簡化為 $variable-name
$ echo ${a}
6
變數儲存字串
如果字串中有空格,才必須用" "括起來,因為bash會把空格視作兩個命令之間的分隔符。
如果沒有空格, 則不需要用""括起來也是字串
$ a="5 6"
$ echo $a
5 6
$ a=A
$ echo $a
A