bash基礎知識

一、輸出重定向
輸出重定向是指 將本應輸出到屏幕的內容重定向輸出到文件。
方法是:
1. 命令 > 文件名
2. 命令 >> 文件名
方法1、2表達的內容是將命令的輸出送入文件中,其中方法1的作用是以覆蓋的方式,把命令的正確輸出 輸入到指定的文件或設備當中,方法2是以追加的方式,把命令的正確輸出輸入到指定的文件或設備當中。覆蓋指的是新輸入的內容會覆蓋掉原文件中的所有內容(可以理解爲先將原文件中的內容刪除,然後將新輸入的內容寫入該文件),追加是指不改變原文件內容,將新輸入的內容追加在原文件內容之後。
需要注意的是:符號>和符號>>是指將正確的命令輸出重定向,那怎麼講命令的錯誤信息重定向呢?我們使用 [命令 2> 文件]來將錯誤信息以覆蓋的方式重定向。同理,以追加的方式重定向錯誤信息應爲[命令 2>> 文件]。一個小插曲:在Linux操作系統中,我們規定數字0表示標準輸入,數字1表示標準輸出,數字2表示錯誤輸出,所以我們這裏錯誤輸出重定向要用數字2。
如果我們想將正確輸出和錯誤輸出重定向到同一文件,我們可以使用[命令 > 文件名 2 >&1]或者簡單起見直接使用[命令 >& 文件名]

二、 輸入重定向
輸入重定向是將 文件中的內容輸入到命令中。格式如下:

三、 多命令執行符
1. 多命令執行符:;(分號),它的作用是將多個命令順序執行,命令之間沒有任何邏輯關係。舉例: [命令1; 命令2; 命令3; 命令4],這四個命令將會順序執行,不管命令1234是否輸入正確,就算錯誤也執行下一個命令。
2. 多命令執行符:&& (邏輯與),它的作用是當 邏輯與前的命令正確執行時,才執行邏輯與後面的命令,否則,後面的命令將不執行。舉例:[命令1&& 命令2 && 命令3 && 命令4],這四個命令必須命令1正確執行纔會執行命令2,只有命令2執行纔會執行命令3,當其中某一個命令錯誤執行(錯誤輸出),則後面的命令都將得不到執行。
3. 多命令執行符:||(邏輯或),它的作用是當 邏輯或 前面的命令錯誤輸出時,纔會執行 邏輯或後面的命令,否則,後面的命令將得不到執行。舉例:[命令1 || 命令2 || 命令3],當命令1錯誤輸出時,才執行命令2,當命令2錯誤輸出時,才執行命令3,當其中某一個正確執行時,後面的命令都將得不到執行。
總結:命令之間的邏輯與和邏輯或表達式也符合“開關特性“。什麼是“開關特性“:對於邏輯與表達式,一假則全假,比如表達式[命令1&& 命令2 && 命令3],當命令1爲假時(輸出錯誤),則整個表達式就爲假,後面的命令2就沒有再判斷的必要了,命令2將不會被執行,命令3也將不會被執行。對於邏輯或表達式,一真則全真,比如表達式[命令1 || 命令2 || 命令3],當命令1正確執行時,整個表達式就是正確的,命令2就沒有再判斷的必要了,所以命令2不會被執行,命令3也將不會被執行。

四、特殊字符
1. 特殊字符:”(單引號),是指單引號括起來的是字符串,如果單引號括起來的字符串中有特殊字符,則該特殊字符將喪失其特殊性,退化爲普通字符,比如 ‘$val’,如果val是變量且有值,對於命令 [echo ‘$val’]也將輸出字符串 ‘$val’而不是val中的值。
2. 特殊字符: “”(雙引號),是指雙引號括起來的是字符串,如果雙引號括起來的字符串中有特殊字符,將保持特殊字符的特殊性。比如對於命令[echo “$val”],如果val中有值,將輸出val中的值而不是字符串$val。這裏$字符表示的是調用得到變量中的值。
3. 特殊字符: “(反引號),是用來執行系統命令。比如命令[val=`ls`],是指先執行ls命令,並將命令輸出的值保存在變量val中。
4. 特殊字符:$(),作用與特殊字符反引號相同,因爲反引號與單引號容易混淆,我們一般用這個特殊字符來代替反引號特殊字符。
5. 特殊字符:# (井號),在shell中,特殊字符井號之後的字符串表示註釋,在程序運行時不起任何作用。
6. 特殊字符:(反斜槓),用作轉義字符。
若有不對之處,敬請指正。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章