ファイルが存在するかどうかを確認する必要があるスクリプトを記述しようとしています。コンソールで書きます
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
そして私は得る
not mod
しかし、私が同じことをするスクリプトを書くとき:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
そして、スクリプトを実行すると、これが得られます:
./ex.sh: 2: [[: not found
mod
スクリプトを現在のディレクトリに保存し、ex.shという名前を付けて、実行可能であることを確認しました。スクリプトを呼び出すには、これを行います:
./ex.sh
この問題が発生するのはなぜですか?私はすでに多くのことを試しました:
if [ -a /home ...
そして
if test -a /home ...
両方とも戻ります
13: -a: unexpected operator
私はそれを機能させることができましたが、そのために最初の行(#!/ bin / sh)を削除する必要がありました。これがなぜ起こるのか知っていますか?
—
ブズ
試してください
—
ケブ
#!/bin/bash
こんにちはケブ、私もそれを緩和しました。質問を更新しました。私はこれに多くの時間を費やしましたが、解決できてうれしいです。ご回答有難うございます。それは確かに、問題の解決策です。
—
ブズ
@Kevそれを答えとして投稿してください
—
slhck
Buzu、@ Kev-回答が見つかった場合、以下の回答として投稿してください。質問は編集しないでください。
—
-user1686