Linux - 欠落しているファイルオペランドをタッチします。なぜですか?

Linux - 欠落しているファイルオペランドをタッチします。なぜですか?
#!/bin/bash
echo "Unesite argument:$1 "
var=$1

if [[ ! -f "$var" ]]
then
        touch $var
        sleep 1
        echo "Nova datoteka $var je kreirana."
else
        echo "Ova datoteka vec postoji, unesite drugu."
        sleep 1
fi

「タッチにファイルオペランドがありません」というメッセージが表示されるのはなぜですか?

ベストアンサー1

スクリプトにパラメータを提供していません。その結果、両方とも空の文字列に$1展開されます。$var

空の文字列は確かに既存のファイル名ではないのでtouch $var実行されます。なぜならあなたはそうではないからです。引用するtouch拡張はパラメータのないものと同じです。

もしあなたなら持つquote を$var実行すると、touch ""次のような他のエラーメッセージが表示されます。

touch: : No such file or directory

空の文字列は有効なファイル名ではないからです。

おすすめ記事