我正在编写一个 bash shell 脚本,只要文件存在,我就想在其中实现睡眠序列。现在,在最简单的情况下,这类似于:
while [ -f fileName ]
do
echo "waiting"
sleep 1
done
现在,在我的情况下,第一个问题如下:我想在文件名中使用通配符。这可以通过以下方式解决:
fileName="$path/$prefix*$suffix"
while [ -f $fileName ]
do
echo "waiting"
sleep 1
done
但是,如果有多个文件与 fileName 匹配,则会失败
./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