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没有任何参数。

如果你引用$var,你会执行touch "",这会给你一个不同的错误消息,类似于

touch: : No such file or directory

因为空字符串不是合法的文件名。

相关内容