第一個shell腳本 打開文本編輯器vim,新建一個文件test,擴展名爲sh(sh表明shell),全名是 test.sh 。擴展名並不影響腳本執行,見名知意就好,若是你用 php 寫shell 腳本,擴展名就用 php 好了。php
輸入一些代碼:linux
#!/bin/sh #echo "123456" echo "Hello World !" 第一行「#!」 是一個約定的標記,它告訴系統這個腳本須要什麼解釋器來執行,即便用哪種Shell。一般/bin/sh是指向/bin/bash的。shell
但後面的字符 # 表示註釋,#後面的內容將被忽略。vim
echo命令用於向窗口輸出文本。bash
運行Shell腳本有兩種方法。編輯器
做爲可執行程序 將上面的代碼保存爲test.sh,並 cd 到相應目錄:ip
$ chmod +x ./test.sh #使腳本具備執行權限 $ ./test.sh #執行腳本 Hello World ! 注意,必定要寫成./test.sh,而不是test.sh。運行其它二進制的程序也同樣,直接寫test.sh,linux系統會去PATH裏尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裏,你的當前目錄一般不在PATH裏,因此寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。get
經過這種方式運行bash腳本,第一行必定要寫對,好讓系統查找到正確的解釋器。test
做爲解釋器參數 這種運行方式是,直接運行解釋器,其參數就是shell腳本的文件名,如:變量
$ /bin/sh test.sh $ /bin/php test.php 這種方式運行的腳本,不須要在第一行指定解釋器信息,寫了也沒用。
再看一個例子。下面的腳本使用 read 命令從 stdin 獲取輸入並賦值給 PERSON 變量,最後在 stdout 上輸出:
#!/bin/bash
echo "What is your name?" read PERSON echo "Hello, $PERSON" 運行腳本:
$ chmod +x ./test.sh $ ./test.sh What is your name? mozhiyan Hello, mozhiyan