簡單介紹一下管道和重定向。
管道和信号一樣,是程序通信的方式之一
管道符是"|",将前一個指令執行的結果傳遞給後面的指令。
比如說:
ls -l | more
就是第一個的輸入,然後給第二個的輸入,這其實更好了解。
2.重定向符号
一個程序預設會打開标準輸入、标準輸出、錯誤輸出三個檔案的描述符。
a 輸入重定向符号 "<"
read var < /path/to/a/file
b 輸出重定向 ">" ">>" "2>" "$>"
echo 123 > /path/to/a/file
這裡有4個不同的符号。
第一個符号是:> 這個表示清空裡面的内容,然後填入新内容。
第二個符号:>> 這個是追加的意思。
第三個符号:2> 如果前面的指令産生錯誤才會輸入進去。
第四個符号: $> 無論前面正确還是錯誤都輸出到指定檔案之中
c 輸入和輸出重定向組合使用
cat > /path/to/a/file << EOF
I am $USER
EOF
下面來示範一下重定向的指令了。
第一個 wc -l <,這個可以統計一個檔案裡面有多少行。
然後輸入重定向:
echo "123" > /tmp/a.txt
然後我們進行追加:
echo "123" >> /tmp/a.txt
同樣來輸出錯誤的。
echo "123" 2> /tmp/a.txt
如果沒有錯誤那麼會被清空。
echo "123" 2>> /tmp/a.txt
這樣就是追加了。
那我們來試一下錯誤的:
如果想無論是錯誤還是正确都輸入到檔案中去:
這樣就行。
那麼看下輸入和輸出有什麼組合可以有新效果。
就是把I am $USER 輸入到 /path/to/a/file中。
如果是追加的話,那麼是: