#!/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
빈 문자열은 유효한 파일 이름이 아니기 때문입니다.