shell指令碼語言學習1 第乙個shell指令碼

2021-07-22 05:49:39 字數 1228 閱讀 6087

開啟文字編輯器,新建乙個檔案,擴充套件名為sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。

輸入一些**:

#!/bin/bash

echo "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 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...