0

如果有人运行我的脚本但输入了一个不存在的文件作为参数,我正在尝试显示错误消息。

function finder(){
if test find $1 ; then
 exit 0
 else
 exit 1
fi
}

#### error message if file does not exist

if test finder -eq 1 ; then
 echo "safe_rm: cannot remove '$1' : No such file or directory"
fi

我收到一条错误消息,指出手指函数需要一个整数 - 但它不应该根据我的函数产生 0 或 1 的退出状态吗?

如何制作一个 if 语句,上面写着“如果 finder 的存在状态为 1,则回显“不存在这样的文件或目录”?

任何建议表示赞赏!

4

3 回答 3

3

几个问题:

  1. exit停止脚本。要从函数返回值,请使用return.

  2. test不将命令作为其第一个参数。详情请参阅man test

  3. finder -eq 1不运行finder,它把它当作一个字符串。

你真正的意思是

if test -e "$1" ; then
    # ...
else
    echo "$1 does not exists."
fi
于 2013-06-19T11:09:19.723 回答
1

为什么不使用 [ -d /path/to/folder ][ -f /path/to/file ]

于 2013-06-19T11:03:55.943 回答
0

Alternatively you can use:

if [ ! -e $1 ] ; then
    echo "safe_rm: cannot remove '$1' : No such file or directory"
fi
于 2013-06-19T13:25:12.657 回答