![Linux - 누락된 파일 피연산자를 터치하세요. 이유는 무엇입니까?](https://linux55.com/image/214068/Linux%20-%20%EB%88%84%EB%9D%BD%EB%90%9C%20%ED%8C%8C%EC%9D%BC%20%ED%94%BC%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC%20%ED%84%B0%EC%B9%98%ED%95%98%EC%84%B8%EC%9A%94.%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
#!/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
빈 문자열은 유효한 파일 이름이 아니기 때문입니다.