ファイルの存在チェックはこう書くじゃん。
if [ -e aaa.zip ]; then echo "hoge" fi
でもこう書いたら too many arguments
って怒られるんだよね。
if [ -e aaa* ]; then echo "hoge" fi
まあ当然だよね。とどのつまりは展開されて if [ -e aaa.zip aaabbb.zip aaaccc.zip ]
みたいな感じになっちゃうから。
で、これを回避するためには、ワイルドカードは使わないで、ファイル数をチェックしよう。
ここで、/dev/null
に標準エラー出力を放り込まないとファイルが存在しなかったらプログラムが止まるので注意。
if [ 0 -lt $(ls aaa* 2>/dev/null | wc -w) ]; then echo "hoge" fi