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

빈 문자열은 유효한 파일 이름이 아니기 때문입니다.

관련 정보