1,shell指令碼
格式:檔案一般以.sh結尾
檔案內容一般我們需要去注釋當前的解釋指令碼的工具是誰
#!/bin/bash
(1)shell指令碼可以在裡面執行shell命令
(2)執行指令碼:
1,source 指令碼 source 與./ 的區別
2,改變指令碼許可權來執行
chmod 777 指令碼
./指令碼
(3)指令碼是有變數的:
1,變數是沒有型別的,預設都是字串
2,等號旁邊不允許出現空格
mylove="lol"
3,引用變數加上$和變數名字就可以引用了
$mylove
4,在shell指令碼中有3中型別的變數:
1,使用者自定義
2,系統環境變數(env可以檢視)
3,命令列變數(其實就是一些特殊的符號)
2,命令列變數:
$:(1)解引用乙個變數
(2)如果你把它當成變數來用,他代表執行指令碼的程序號
(3)可以當做乙個字元,加上\即可使用
\ :轉義字元
# :呼叫指令碼的引數的個數
?:上次程式呼叫的結果
*,@:指令碼的全部引數,中間以空格隔開
數字:引用傳入的引數的第幾個
3,特殊符號:
1,引號:"" '' ``
反引號:``(esc下面)呼叫命令
雙引號:組合字串
單引號:純字串,內部不允許呼叫解引用,就算呼叫也是字元
2,管道:
| (1)如果只是單個 |,那他的意思是將上個命令的輸出的資訊當成文字輸入到下乙個命令中
(2)如果加上|xargs,這個意思是將上個命令的輸出資訊當成命令引數傳入下乙個命令中
(3)並不是所有的命令都支援管道(比較少,基本上的命令都支援)
3,重定向:
定向檔案描述符(0,標準輸入(鍵盤輸入)1,標準輸出(帶緩衝到螢幕)2,標準的出錯(不帶緩衝的輸出到螢幕))
echo "hello" 1> a.txt
echo "hello" > a.txt
將echo輸出的hello(原本是標準輸出的)讓它輸出到檔案a.txt當中
ls 檔案 (如果檔案存在,則這個資訊會輸出到標準的輸出(1)
如果檔案不存在,則這個資訊會輸出到標準的出錯(2))
ls 檔案 > a.txt(如果檔案存在則會將輸出資訊寫入a.txt)
(如果檔案不存在,不會將資料寫入a.txt,而是顯示出來,並且a.txt會被清空(標準的輸出沒有內容的,所有a.txt將會清空))
sed:
shell程式設計1
1 雙引號 雙引號內的內容除了 轉義符 倒引號 這三個保留特殊功能,其他的均作為普通字元。2 單引號 單引號裡的內容全部作為普通字元。3 倒引號 引號內的內容當做 shell 命令列來解釋。4 美元符 變數符,如 a表示變數 a的值。變數字元長度超過 1個時,用 括起來。5 變數 本地變數 只能在建...
Shell 程式設計 1
為什麼要進行shell程式設計 在linux系統中,雖然有各種各樣的圖形化介面工具,但是sell仍然是乙個非常靈活的工具。shell不僅僅是命令的收集,而且是一門非常棒的程式語言。您可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性 可維護性和便攜性比效率更...
Shell 程式設計(1)
為什麼要進行shell程式設計?在linux 系統中,雖然有各種各樣的圖形化介面工具,但是shell仍然是乙個非常靈活的工具。shell不僅僅是命令的收集,而且是一門非常棒的程式語言。您可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性 可維護性和便攜性比效...