shell 介紹
shell 就是乙個unix命令列直譯器,當使用者輸入命令並按回車鍵時,shell會解釋命令並執行相應操作。這種方式稱為互動式。
shell也可以當做高階程式語言來使用,這時,不需要在shell提示符後一次輸入乙個命令,而是將多個命令存入乙個檔案中,然後讓shell一次性執行檔案中的所有命令。這種執行命令的方式稱為批處理(batch)。
shell指令碼和程式語言很相似,也有變數和流程控制語句,包括迴圈和分支。但shell指令碼是解釋執行的,不需 要編譯。作為程式語言,它雖然不是 linux系統核心的一部分,但它呼叫了系統核心的大部分功能來執行程式、建立文件並以並行的方式協調各個程式的執行。
shell 指令碼的執行
假定有一shell指令碼檔案,commands.sh, 有三種執行指令碼的方式:
(1)通過重定向操作符(<)
sh < commands.sh
通知shell從檔案commands.sh中讀取命令
(2) 可以輸入如下命令來執行: sh commands.sh
(3) 首先使shell指令碼檔案成為可執行檔案
chmod +x commands.sh
./commands.sh
子shell
在shell指令碼執行的時候,使用者登入shell實際上是呼叫另外乙個shell程序來執行該指令碼, 例如,使用者登入shell可以是ksh、csh、tcsh或bash,但都可以使用sh執行使用者的shell指令碼。
因此,為了確保無論採用何種登入shell都可以使用sh執行指令碼,則需要在每個shell指令碼檔案中加入:
#!/bin/sh 它表示該指令碼使用後面的直譯器解釋執行。
shell 變數
(1)使用者自定義變數
shell變數不需要進行任何宣告,直接定義即可,因為shell只處理字串(對於沒有定義的變數預設是乙個空串)。定義的時候shell變數由大寫字母加下劃線組成,並且定義的時候等號兩邊不能存在空格,否則會被認為是命令!
引用shell變數要用到$符號,加{}可以防止歧義。
#!/bin/sh 它表示該指令碼使用後面的直譯器解釋執行。
#illustrate the use of positional parameters
echo
$0$1
$2$3
假定使用者輸入如下命令執行該指令碼:
./echo.args we like unix
shell 將把命令名「echo.args」儲存在引數$0中,將「we」儲存在引數$1中,「like」儲存在引數$2中,「unix」儲存在引數$3中。
shell指令碼學習小結
下面舉個例子 比如在你的電腦中有兩個目錄,乙個是aa,乙個是bb在這兩個目錄中有5個相同的檔案,但其中乙個目錄中的乙個或多個檔案剛剛修改過,現在我忘記剛才改的是那幾個檔案 了,那麼我靠梢員冉弦幌掄飭礁瞿柯嫉奈募就知道?程式如下 for file in a1 a2 a3 a4 a5 do diff a...
shell指令碼學習1
在工作的時候接觸到了shell指令碼,不過我沒有自己寫過,但是又因為當時對shell有了興趣,所以我就抽了一點時間,來學習shell指令碼的語法結構,這裡只是基本的shell語法,更高深的在以後可能會接觸。一 shell分類 1 bourne家族 sh,bash 標準shell pshell,zsh...
Shell 指令碼學習1
目錄 1.批量生成 2.批量修改 3.批量生產使用者 4.生產隨機密碼 5.批量判斷網路10.0.0.內的主機是否通訊 6.sed 命令使用 7.gawk 命令使用 8.gawk 正規表示式 9.sed 單詞替換空白行處理 10.sed 處理文字反轉指令碼 11.sed 清除html標籤 12.特殊...