次のスクリプトは実行されませんが、構文エラーが発生するのはなぜですかelse
?
LOGS3_DIR=~/logs
if [ -d "$LOGS3_DIR" ]; then
cd
cd "$LOGS3_DIR"
echo "$LOGS3_DIR"
for filename in `find "." -mtime 1 -type f`
do
if lsof "$filename" > /dev/null
then
# file is open
else
echo "deleting $filename"
rm "$filename"
fi
done
fi
ベストアンサー1
一つ作ってみたいと思いますねアクションなしファイルがすでに開いている場合は、空の:
コマンドを1つ追加する必要がありますbash
。
if lsof "$filename" > /dev/null; then
# file is open
:
else
printf 'deleting %s\n' "$filename"
rm -- "$filename"
fi
これを使用しないと、:
コードbash
は解析されず、このようなエラーが表示されますbash: syntax error near unexpected token 'else'
。