打開文本編輯器,新建一個文件,擴展名為sh(sh代表shell),,擴展名并不影響腳本執(zhí)行,見名知意就好,,如果你用php寫shell 腳本,,擴展名就用php好了。 輸入一些代碼:“#!” 是一個約定的標記,,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,,即使用哪一種Shell,。echo命令用于向窗口輸出文本,。 運行Shell腳本有兩種方法,。 作為可執(zhí)行程序將上面的代碼保存為test.sh,,并 cd 到相應目錄:chmod +x ./test.sh #使腳本具有執(zhí)行權限./test.sh #執(zhí)行腳本 注意,,一定要寫成./test.sh,而不是test.sh,。運行其它二進制的程序也一樣,,直接寫test.sh,,linux系統(tǒng)會去PATH里尋找有沒有叫test.sh的,,而只有/bin, /sbin, /usr/bin,,/usr/sbin等在PATH里,你的當前目錄通常不在PATH里,所以寫成test.sh是會找不到命令的,,要用./test.sh告訴系統(tǒng)說,,就在當前目錄找。通過這種方式運行bash腳本,,第一行一定要寫對,好讓系統(tǒng)查找到正確的解釋器,。 這里的'系統(tǒng)',,其實就是shell這個應用程序(想象一下Windows Explorer),,但我故意寫成系統(tǒng),,是方便理解,,既然這個系統(tǒng)就是指shell,,那么一個使用/bin/sh作為解釋器的腳本是不是可以省去第一行呢,?是的,。 作為解釋器參數(shù)這種運行方式是,,直接運行解釋器,,其參數(shù)就是shell腳本的文件名,,如:/bin/sh test.sh/bin/php test.php 這種方式運行的腳本,,不需要在第一行指定解釋器信息,寫了也沒用,。再看一個例子,。下面的腳本使用 read 命令從 stdin 獲取輸入并賦值給 PERSON 變量,最后在 stdout 上輸出:
#!/bin/bash# Author : mozhiyan# Copyright (c) http://see./cpp/linux/# Script follows here:echo 'What is your name?'read PERSONecho 'Hello, $PERSON' chmod +x ./test.sh$./test.shWhat is your name?mozhiyanHello, mozhiyan$
|
|