星期二, 2月 21, 2006

Shell Programing note

*調查使用 | (pipe) 來連結各指令的終止碼 (bash篇)

[root@localhost tmp]# ls
gconfd-root kde-root mcop-root ssh-wqbnVl2901 xses-root.kUqU56
kdecache-root ksocket-root orbit-root test.sh
[root@localhost tmp]# cat test.sdd | wc -l
cat: test.sdd: 沒有此一檔案或目錄
0
[root@localhost tmp]# echo $?
0 <----無法由return code知道 cat test.sdd執行失敗
[root@localhost tmp]# cat test.sdd | wc -l
cat: test.sdd: 沒有此一檔案或目錄
0
[root@localhost tmp]# echo ${PIPESTATUS[0]}
1 <----利用${PIPESTATUS[n]} 這個陣列的變數便可知道執行失敗
[root@localhost tmp]# cat test.sdd | wc -l ; set | grep -i pipe
cat: test.sdd: 沒有此一檔案或目錄
0
LESSOPEN='|/usr/bin/lesspipe.sh %s'
PIPESTATUS=([0]="1" [1]="0")

1 則留言:

willfred 提到...

Great.......