第乙個Shell指令碼

2022-03-10 22:53:23 字數 1283 閱讀 3381

開啟文字編輯器,新建乙個檔案,擴充套件名為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

#autho :

#script follows here:

echo

"what is you name?

"read person

echo

"hello,$person

"

執行指令碼:

chmod +x ./test.sh

$./test.sh

what is your name?mozhiyan

hello, mozhiyan

$

第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...

第乙個shell指令碼

首先宣告,我的linux系統是centeros 64bit的 開啟終端,cd mnt hgfs share 進入以下目錄 mkdir shellfolder 建立資料夾shellfolder touch runstusys.sh 建立乙個shell程式 vi runstusys.sh 進行編輯,並輸...

第乙個shell指令碼

hostname term hello shell histsize ssh client world cvs rsh path 通過shell讀取文字檔案,並到系統變數中查詢是否存在 shell命令如下 bin sh filename env var.txt num cat filename wc...