開啟文字編輯器,新建乙個檔案,擴充套件名為sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。
輸入一些**:
#!/bin/bashecho "hello world !"
「#!」 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種shell。echo命令用於向視窗輸出文字。
執行shell指令碼有兩種方法。將上面的**儲存為test.sh,並 cd 到相應目錄:
chmod +x ./test.sh #使指令碼具有執行許可權注意,一定要寫成./test.sh,而不是test.sh。./test.sh #執行指令碼
執行其它二進位制的程式也一樣,直接寫test.sh,linux系統會去path裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在path裡,你的當前目錄通常不在path裡,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。
通過這種方式執行bash指令碼,第一行一定要寫對,好讓系統查詢到正確的直譯器。
這裡的"系統",其實就是shell這個應用程式(想象一下windows explorer),但我故意寫成系統,是方便理解,既然這個系統就是指shell,那麼乙個使用/bin/sh作為直譯器的指令碼是不是可以省去第一行呢?是的。這種執行方式是,直接執行直譯器,其引數就是shell指令碼的檔名,如:
/bin/sh test.sh這種方式執行的指令碼,不需要在第一行指定直譯器資訊,寫了也沒用。/bin/php test.php
再看乙個例子。下面的指令碼使用
read
命令從 stdin 獲取輸入並賦值給 person 變數,最後在 stdout 上輸出:
#!/bin/bash# author : mozhiyan
# script follows here:
echo "what is your name?"
read person
echo "hello, $person"
執行指令碼:
chmod +x ./test.sh$./test.sh
what is your name?
mozhiyan
hello, mozhiyan
$
指令碼語言學習 一
tempconvert.py tempstr input 請輸入帶有符號的溫度值 if tempstr 1 in f f c eval tempstr 0 1 32 1.8 print 轉換後的溫度是c format c elif tempstr 1 in c c f 1.8 eval tempst...
Shell指令碼學習5 第乙個Shell指令碼
開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...
第乙個Shell指令碼
開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...