синтаксическая ошибка: неверный арифметический оператор (токен ошибки – .c)

Я пытаюсь проверить, присутствует ли файл «file1.c» в текущем рабочем каталоге, что я делаю неправильно с моей тестовой командой? Я думал, что понял эту команду, делаю ли я что-то не так для оболочки Bourne, о которой я не знаю?

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

One Solution collect form web for “синтаксическая ошибка: неверный арифметический оператор (токен ошибки – .c)”

Вам не нужны заключенные круглые скобки, достаточно test :

 if test -e "$NAME"; then 

Функция (()) предназначена для арифметических операций сравнения.

test является синонимом команды [ command], поэтому вы можете использовать:

 if [ -e "$NAME" ]; then 

слишком.

Также у некоторой оболочки есть [[ keyword:

 if [[ -e "$NAME" ]]; then 
  • Как я могу перенаправить вывод дочернего процесса?
  • Назначьте идентификатор переменной в цикле и эхо его значение
  • Инструменты и стратегии для анализа устаревшего приложения на основе сценариев оболочки
  • копирование определенных файлов в каталог
  • Лучший способ частично пройти через строку 25k?
  • Как передать имя функции тестируемому?
  • Как использовать команду convert с bash для изменения размера всех изображений в заданном каталоге?
  • Bash: запустить команду2, если команда1 не выполнена
  • Как я могу отредактировать мой скрипт bash для учета пробелов?
  • Если, elif и другие скриптовые операторы Linux
  • Как я могу пропустить пустые файлы с sed?
  • Linux и Unix - лучшая ОС в мире.