1. 程式人生 > >shell程式設計學習4改變語句執行的邏輯輸入輸出等

shell程式設計學習4改變語句執行的邏輯輸入輸出等

例項

使用分號;
依次執行,沒有邏輯關係

mkdir /newdir ; cd /newdir //新建並進入newdir

使用&&
與邏輯,一旦出現失敗後面命令不執行

make && make install //保證編譯完成後安裝

使用 ||

id hello || useradd hello //沒有mickey使用者則建立一個
id yezeng &>/dev/null && echo YES || echo NO //判斷使用者是否存在

使用管道 |

//把網絡卡資訊作為輸入給less命令
ifconfig -a | less 
//列出所有普通檔案
find /etc -type f | wc -l
//列出當前TCP處於監聽的埠總數
netstat -anpt | grep -c "LISTEN"

linux的IO裝置框架

在這裡插入圖片描述

使用命令給命令執行時選擇不同的裝置輸入輸出

  • stdin指標準輸入資訊預設鍵盤,檔案描述號0
  • stdout指標準輸出資訊預設顯示器裝置,檔案描述號1
  • stderr指標準輸出資訊預設顯示器裝置,檔案描述號2

cmd > file 把 stdout 重定向到 file 檔案中;
cmd >> file 把 stdout 重定向到 file 檔案中(追加);
cmd 1> fiel 把 stdout 重定向到 file 檔案中;
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 檔案中;
cmd 2> file 把 stderr 重定向到 file 檔案中;
cmd 2>> file 把 stderr 重定向到 file 檔案中(追加);
cmd >> file 2>&1 把 stdout 和 stderr 一起重定向到 file 檔案中(追加);
cmd < file >file2 cmd 命令以 file 檔案作為 stdin,以 file2 檔案作為 stdout;
cat <>file 以讀寫的方式開啟 file;
cmd < file cmd 命令以 file 檔案作為 stdin;
cmd << delimiter Here document,從 stdin 中讀入,直至遇到 delimiter 分界符。

ls -ld /rootx/root >/root/ls.log 2>/root/err.log //把資訊分別儲存到不同檔案