私のスクリプトの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)"