if elseステートメント:変数に保存されたパスが存在することを確認してください。 [閉じる]

if elseステートメント:変数に保存されたパスが存在することを確認してください。 [閉じる]

私のスクリプトのif文に問題があります。変数にパスが格納されていて、if...elseステートメントを使用して、変数パスにファイル(file1)があることを確認したいと思います。これは私のコードです。

variable=$/home/username/file1

if [ -f "${variable}" ]
then
    echo "$variable exists"
    exit
else
    echo "file not found"
    exit
fi

私もこれを試しましたが、[ -f "$variable" ]すべてのケースで両方のステートメントが実行されました。私が受け取った出力は次のとおりです。

/home/username/file1 exists
file not found

最大の問題は、コマンド自体が機能しないことです。しかし、最初のシャットダウンコマンドの後でも終了しないのはなぜですか?私が見えない大きな間違いはどこにありますか?

ベストアンサー1

スクリプトの問題は最初の行にあります。

変数にパスを割り当てるには、変数を文字列として扱うだけです。

variable="/home/username/file1"

またはこれも:

variable=/home/username/file1

だとしたら大丈夫です。


コマンドの出力を変数に割り当てるには、$ 記号が必要です。

OUTPUT="$(ls -1)"

おすすめ記事