Bash 讀書筆記(三)

2022-06-01 10:30:11 字數 1689 閱讀 2927

36. 資料流重導向

標準輸入(stdin) **:0, 使用< 或者<<

標準輸出(stdout)  **:1, 使用 > 或者 >>

標準錯誤輸出(stderr) **:2,使用 2> 或者 2>>

1> 把正確的資料以覆蓋的方式輸出到指定的檔案或裝置上

1>> 把正確的資料以累加的方式輸出到指定的檔案或裝置上

2> 把錯誤的資料...

2>> 把錯誤的資料以累加的方式輸出到指定的檔案或裝置上

注釋:1是預設省略的。2>中間沒有空格。1和2可以同時使用。

例子: find /home -name .bashrc > list_right 2> list_error

37. /dev/null 垃圾桶黑洞裝置

find / -name .bashrc 2> /dev/null

38. 將正確的和錯誤的資料全部寫入同乙個檔案中, 2>&1, &>

使用 2>&1 或者 &> (一般使用前者)

例如: find /home -name .bashrc > list 2>&1    

find /home  -name .bashrc &> list

39. 利用cat建立乙個檔案: cat > filename, 用ctl+d結束。

touch也可以,但是cat filename之後,會要求輸入檔案的內容。而touch不用,之後需要用vim進入檔案修改。

40 << 結束的輸入字元

cat > catfile <

41. < 之後的檔案如果不存在,則就會提示錯誤資訊。

42. (指令回傳值)與 && 或 ||

指令回傳值就是 $?。如果一道命令正確執行完畢,就會回傳乙個 $?=0的值。依據這個值來判斷 || 之後的命令是否需要執行。

同時使用:

ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe
他們是平行的關係。流程圖如下:

43. 兩種比較表示式的比較。

`which command`

if [ $? == 0

]; then

echo "ok

"fiif [ `which command` = ""

]; then

echo "ok

"fi

這裡有兩種涵蓋了命令指令``的比較表示式。第一種,執行的命令會有stdout 和 stderrr 的輸出值。而在第二種中,命令表示式的輸出值不會顯示出來,即便是錯誤輸出值。

44. 管道 | 和管道命令

1. 管道後面必須要跟命令,而且能夠接收 stdout 的資料。 例如:less, more, head, tail。 ls cp mv 不能作為管道命令。

bash程式設計讀書筆記(基礎篇II)

24.也是變數。echo 解釋 也是變數代表當前shell執行的pid process id 通過 echo 既可以看到或者用 ps e grep bash。25.也是變數 username john echo 012name vasdf echo 13026.locale 檢視 linux語系。l...

JAVA讀書筆記(三)

string類沒有提供修改乙個已存在的字串中的某乙個字元的方法,例如 string greeting hello 如果想把greeting變成 help 不能直接把greeting的最後一位變成 p 和 而是保留需要的字串,將替換的字串通過 連線在一起。greeting greeting.subst...

Head First OOA D讀書筆記 三

需求總是在改變。即使你已經得到了很好的use cases,但是你還是可能經常改變你的軟體以適應一些新的需求 main path alternate path,optional path 乙個完整的路徑通過乙個use case,從第一步到最後一步被叫做乙個場景 大多數的use cases擁有許多不同場...