Shell學習筆記之一

2021-05-24 14:41:34 字數 1541 閱讀 7684

1.先看乙個常用的命令

這個命令組合了幾個不同的shell命令,shell命令是有這種特性在裡面的。就是統一性,簡單性。

可以通過管道命令組合多個shell命令。如上面的命令,分別是:

顯示當前執行的程序,sort是對程序進行排序,uniq是去除重複的情況,grep -v sh 是去掉,不展示sh這個程序,而more則表示展示更多。

同樣的,命令也可以這樣寫:

使得命令執行結果重定向到文字文件中。

2. 互動式shell程式設計的應用

學過程式設計的人,對這個例子不會感到陌生。唯一可能存在疑惑的地方是 file 是個什麼東西?

在這裡,file是變數。而$file表示shell程式設計中的引用變數。當然,也可以使用別的名稱,但是顯然file這個名稱更方便理解。

3. shell中的變數

shell程式設計的特點就是簡潔,因此在語法、變數使用上有些讓人迷惑。但是沒辦法,就是這樣定義實現的!

shell中的變數定義是隨時定義隨時可以使用,在使用的時候若想取得變數的值,

需要者變數前面加上美元符,如 $file 就會替換成file的值;

如下:

使用雙引號是為了將有空格的字串包含起來,避免出現錯誤。

4. shell變數的賦值

這個有兩種方法,一種是直接賦值,如

file = "my file"

另一種是從標準輸入讀入,如

5. shell程式設計中的環境變數

執行命令,env,或者執行命令

都會看到這個變數的值。為什麼要加上$這個符號呢,這樣才能展示變數的值哦!

而對於win系統來講,在cmd中,展示環境變數是 echo %home%

6. shell程式設計中的引數變數

先看下面乙個例子:

執行這個指令碼

顯示結果是

hello

the program test.sh is now running

the second para is b

the first para is a

the env home is home/usr/ 

所以,這裡很清楚了,關於shell程式設計中的引數呼叫;和c語言中main函式的 char **argv是類似的!

ps:

unix/linux系統都是支援標準輸入、輸出、錯誤重定向的。用0、1、2分別表示標準輸入、輸出、錯誤,用符號》和《表示輸出和輸入重定向。

如開啟乙個檔案,

vi test.txt

也可以這樣開啟

再ps:為什麼寫的sh程式不能執行?

請檢視該檔案的許可權,並對該檔案新增可執行許可權,chmod +x test.sh 即可;

或者是程式命名和系統命令衝突,這時執行的時候使用 ./test.sh 可以將當前程式指令碼的完整路徑告訴shell。

Shell指令碼基本教程筆記之一

echo this is an example of the echo command this is a comment line.this would not produce any out put 變數variable1 從鍵盤中讀入乙個值給變數fname read fname export命...

SQLite學習筆記之一

2010年sqlite學習筆記之一 官方站點 從 的download頁面獲取 download.html sqlite amalgamation 3 6 22.zip是sqlite的windows下原始碼檔案 sqlite 3 6 22.zip sqlitedll 3 6 22.zip 在sqlit...

C primer 學習筆記之一

c 中類模板可以定義static成員 每個類模板例項化時都會生成乙個static成員副本。如下 定義了類模板a並在a中宣告了static成員a 在類外定義了a 在主程式中定義了例項化了a和a兩個具體的類 includeusing namespace std template class a a 中的...