我們再來重新說一下exec
命令:
這個命令很有用,我們可以把乙個已經開啟的檔案的檔案描述符複製到另乙個檔案描述符中,示例如下:
touch test
echo
"this is a test" > test
exec
6>test
exec
7>&6
date >&7
cat test
關閉檔案描述符:
exec 檔案描述符》&-
#!/bin/bash
if [ $# -ge 1 ] ; then
for file in
$@do
exec
4< "$file"
while
read line ; do
echo
$line ; done
exec04
done
fi
這個指令碼可以正常工作,將你所選擇的檔案的內容輸出到標準輸出中:
可以看到,在上面這段指令碼中,我們對標準輸入進行了一次重定向,在while
迴圈開始前我們把他重定向到了檔案描述4
中,在while
迴圈結束後,我們又把檔案描述符4
重定向到回標準輸入,並關閉了檔案描述符4(exec 4
其實上面那段**不用重定向標準輸入也是可以正常執行的
直接看例子吧:
上面這個就是給你一系列選擇,然後對你所選擇的檔案執行ls -l
命令
從上面這段指令碼的執行結果我們可以看到,預設的提示符是#?
,非常的不人性化,我們可以通過修改變數ps3
來改變提示符:
ps3="please make a selection =>" ; export ps3
把這句話,新增到指令碼中即可
執行結果:
shell程式設計筆記
第一天學習shell程式設計,自己做的筆記 test1 bin sh judge dir exist if d data 20140515 then mkdir p data 20140515 else echo this dir is exist,please exit fi bin sh sco...
shell程式設計筆記
if 1 eq 1 a 2 2 then echo true elif 1 lt 2 o 3 gt 4 then echo else echo false fi gt lt ge le eq ne a o if f 1.sh echo 1.sh exists if e 1.sh then echo ...
Shell程式設計筆記
1,變數命名規則 your name runoob.com 注意,變數名和等號之間不能有空格,這可能和你熟悉的所有程式語言都不一樣。同時,變數名的命名須遵循如下規則 命名只能使用英文本母,數字和下劃線,首個字元不能以數字開頭。中間不能有空格,可以使用下劃線 不能使用標點符號。不能使用bash裡的關鍵...