语法错误:算术运算符无效(错误标记为“.c”)

语法错误:算术运算符无效(错误标记为“.c”)

我正在尝试测试当前工作目录中是否存在文件“file1.c”,我的测试命令做错了什么?我以为我理解了这个命令,我是否对 Bourne shell 做了一些我不知道的错误?

#! /bin/sh
NAME=$1
if((test -e "$NAME"));then
echo File $NAME present
else
echo File $NAME not present
fi

答案1

您不需要括号,test它本身就足够了:

if test -e "$NAME"; then

用于(())算术比较运算。

test与命令同义[,因此您可以使用:

if [ -e "$NAME" ]; then

也。

还有一些 shell 有[[关键字:

if [[ -e "$NAME" ]]; then

相关内容