Ошибка при поиске строки в файле

Я попытался использовать цикл «case», но он не работает по неизвестной мне причине.

Это мой скрипт для цикла case.

echo "Do you wish to search again? [y/n]" read INPUT_STRING2 case $INPUT_STRING2 y) ;; *) exit ;; 

Тогда у меня возникают проблемы с попыткой сделать мой скрипт более удобным для пользователя, я хочу, чтобы мой скрипт сообщил пользователю, если строка не найдена, но я не могу понять это. Я попытался использовать случайный цикл вместо этого, но не повезло, и попытался использовать оператор else, но это не сработало.

 if grep -q $STRING $FILE ; then echo "string found" fi 

Эта часть работает, но не все, что я хочу.

3 Solutions collect form web for “Ошибка при поиске строки в файле”

Кажется, что «отсутствует» в строке с аргументом case, а также с закрытием esac :

 echo "Do you wish to search again? [y/n]" read INPUT_STRING2 case $INPUT_STRING2 in y) ;; *) exit ;; esac 

Вы сделали две ошибки синтаксиса (после переменной и esac в конце оператора case):

 echo "Do you wish to search again? [y/n]" read INPUT_STRING2 case $INPUT_STRING2 in "y") echo "Searching again" ;; *) exit ;; esac 

Я хочу, чтобы мой скрипт сообщил пользователю, если строка не найдена …. Я пробовал … использовать инструкцию else но это не сработало.

Что вы пробовали?

 if grep -q "$STRING" "$FILE" then echo "string found" else echo "string not found" fi 

работает.

PS Советую процитировать все ссылки на переменные оболочки (например, "$INPUT_STRING2" , "$STRING" и "$FILE" ), если у вас нет по-настоящему веской причины, и вы уверены, что знаете, делает. И наоборот, вам не нужно указывать константные строки (например, string found ), если они не содержат специальных символов. (Квадратные скобки – " [ " и " ] " – это специальные символы в этом контексте.) Но это хорошая идея, чтобы процитировать их в любом случае.

  • вызов $ PWD из другого скрипта
  • Как удалить место во всех подкаталогах в сценарии оболочки?
  • Синхронизация одинаковых каталогов между двумя Linux-серверами
  • Как сделать «если нет» в Bash без теста?
  • объединение n числа файлов с командой cat
  • Удерживать несколько пробелов, содержащих аргументы в одной переменной?
  • Запустить команду sudoed после завершения скрипта?
  • Простой сценарий bash для резервного копирования и удаления каталогов
  • Как захватить форматирование текста в bash?
  • Добавить что-то в каждый список в файле
  • Есть ли элегантный способ установить переменную оболочки в содержимое файла?
  • Linux и Unix - лучшая ОС в мире.