掌握Linux下shell的使用方法。主要介紹Linux shell的語法結構、變數定義以及賦值引用、標點符號、控制語句等。 ...
例1.
$ cat ex1 date pwd cd ..
$ bash ex1
# 運行,顯示當前日期和當前目錄,但沒有執行返回上級目錄,因為執行的時候終端會產生一個子shell(類似於C語言調用函數),子shell去執行我的腳本,在子shell中已經切換了目錄了,但是子shell一旦執行完,馬上退出,子shell中的變數和操作全部都收回。回到終端根本就看不到這個過程的變化。
例2.
$ cat ex2 #!/bin/bash # If no arguments, then listing the current directory. # Otherwise, listing each subdirectory. if test $# = 0 then ls . else for i do ls -l $i | grep '^d' done fi
①.
$0 | 當前腳本的文件名 |
$n | 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。 |
$# | 傳遞給腳本或函數的參數個數。 |
$* | 傳遞給腳本或函數的所有參數。 |
$@ | 傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下麵將會講到。 |
$? | 上個命令的退出狀態,或函數的返回值。 |
$$ | 當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID。 |
②.test 命令用於檢查某個條件是否成立,它可以進行數值、字元和文件三個方面的測試。
③.fi 結束if語句
④.ls(選項)(參數)
參數:指定要顯示列表的目錄,也可以是具體的文件。
⑤.grep '^d'
正則表達式
^ (Caret) = match expression at the start of a line, as in ^A.
$ (Question) = match expression at the end of a line, as in A$
⑥.符號含義
" / " :根目錄
" ~ " :用戶主目錄的縮寫。例如當前用戶為hello,那麼" ~ "展開來就是:/Users/hello
" . " :當前目錄
".." :父目錄
# 運行,不帶參數則列出當前目錄,帶參數則列出參數指定目錄或文件(文件名開頭匹配d的)