我正在寫一個bash shell腳本,我想只要一個文件存在實現休眠序列。現在,在最簡單的情況下,這是一樣的東西:現在如何檢查文件使用通配符實存在while循環shell腳本
while [ -f fileName ]
do
echo "waiting"
sleep 1
done
,在我的處境的第一個問題是:我想在文件名中使用通配符。這可以通過類似這樣解決:
fileName="$path/$prefix*$suffix"
while [ -f $fileName ]
do
echo "waiting"
sleep 1
done
然而,這個如果有多個文件匹配文件名
./testWait.sh: line 11: [: /home/nrc11/egsnrc/BEAM_TB_jaws/130318110457_s.lock: binary operator expected
我怎麼解決這個故障?
這裏是(半)具體的例子:
#!/bin/bash -u
timeStamp="130318110457"
echo "prefix of files: $timeStamp"
beamDir=$(awk '{ print $0 }' $timeStamp/$timeStamp.beamDir)
file="$EGS_HOME$beamDir/$timeStamp*.lock"
echo $file
while [ -f $file ]
do
echo "waiting"
sleep 1
done
應該怎麼測試?是否所有文件都存在?任何存在?還有別的嗎? – 2013-03-18 11:05:17