답변:
이 bash 함수는 주어진 파일이 나타나거나 주어진 시간이 초과 될 때까지 차단됩니다. 파일이 존재하면 종료 상태는 0이됩니다. 그렇지 않으면 종료 상태는 함수가 몇 초 동안 대기했는지를 나타냅니다.
wait_file() {
local file="$1"; shift
local wait_seconds="${1:-10}"; shift # 10 seconds as default timeout
until test $((wait_seconds--)) -eq 0 -o -f "$file" ; do sleep 1; done
((++wait_seconds))
}
사용 방법은 다음과 같습니다.
# Wait at most 5 seconds for the server.log file to appear
server_log=/var/log/jboss/server.log
wait_file "$server_log" 5 || {
echo "JBoss log file missing after waiting for $? seconds: '$server_log'"
exit 1
}
또 다른 예:
# Use the default timeout of 10 seconds:
wait_file "/tmp/examplefile.txt" && {
echo "File found."
}
start=`date +%s`; while (( `date +%s` - start > 10 )); do sleep 1; done