erro de sintaxe: operador aritmético inválido (token de erro é “.c”)

0

Estou tentando testar se o arquivo "file1.c" está presente no diretório de trabalho atual, o que estou fazendo de errado com o comando de teste? Eu pensei ter entendido este comando, estou fazendo algo errado para a shell Bourne que eu não conheço?

#! /bin/sh
NAME=$1
if((test -e "$NAME"));then
echo File $NAME present
else
echo File $NAME not present
fi
    
por Andrew M 30.03.2016 / 05:21

1 resposta

2

Você não precisa dos parênteses incluídos, test seria suficiente:

if test -e "$NAME"; then

O (()) é para operações de comparação aritmética.

test é sinônimo de [ , então você pode usar:

if [ -e "$NAME" ]; then

também.

Além disso, alguns shell tem a palavra-chave [[ :

if [[ -e "$NAME" ]]; then
    
por 30.03.2016 / 05:24