30 lines
496 B
Bash
Executable File
30 lines
496 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Wait until a given file appears
|
|
#
|
|
# Params:
|
|
# $1 - filename
|
|
# $2 - maximum time to wait in seconds, default is 5 seconds
|
|
|
|
if [[ $# -lt 1 || $# -gt 2 ]]
|
|
then
|
|
echo "invalid arguments"
|
|
exit 1
|
|
fi
|
|
|
|
secs=$2
|
|
[ ! $secs ] && secs=5
|
|
|
|
let steps=$secs*10
|
|
for i in `seq 1 $steps`
|
|
do
|
|
# -f does not work for special files (e.g. UNIX domain sockets), use ls
|
|
# instead
|
|
ls $1 >/dev/null 2>&1
|
|
[ $? -eq 0 ] && exit 0
|
|
sleep 0.1
|
|
done
|
|
|
|
echo "File '$1' not available after $secs second(s)"
|
|
exit 1
|