Я могу запустить код из терминала, но ту же команду, выдающую ошибку при запуске в сценарии оболочки

Я новичок в сценариях Unix и shell, я могу запустить код из терминала, но ту же команду, выдающую ошибку при запуске в сценарии оболочки.

#!/bin/bash diff <((sort doc1) <(sort doc2)) | grep -x '.\{6\}' >sample.txt 

Я получаю эту ошибку при запуске оболочки:

 /App$ sh filediff.sh filediff.sh: 4: filediff.sh: Syntax error: "(" unexpected 

2 Solutions collect form web for “Я могу запустить код из терминала, но ту же команду, выдающую ошибку при запуске в сценарии оболочки”

Когда вы запускаете команду diff в обычной оболочке, вы используете текущую оболочку (в основном bash).

Вы отступали, чтобы использовать оболочку bash для своего скрипта, но если вы вызываете свой скрипт с помощью «sh filediff.sh», вы вызываете sh-Shell, который немного отличается от bash.

Вы можете вызвать свой скрипт с помощью

 bash filediff.sh 

или вы выполняете его с помощью

 chmod +x filediff.sh 

и назовите его

 ./filediff.sh 

Команда diff работает для анализа двух файлов и печатает строки, которые отличаются друг от друга. Вы не предоставляете правильные входные файлы для команды diff:

Простой модифицированный рабочий скрипт:

 sort doc1 | tee tempdoc1 sort doc2 | tee tempdoc2 diff tempdoc1 tempdoc2 | grep -x '.\{6\}' > sample.txt echo "Following is difference:" cat sample.txt 
  • Как перемещать файлы с конкретными расширениями во вновь созданные каталоги
  • Как использовать параметры pass-in для сценария оболочки?
  • Как выбрать опцию из меню выбора из сценария?
  • Bash (Ubuntu) - Строки в циклах?
  • Я хочу создать zip-файл с сохранением оригинала
  • Обработка сообщения whois отказалось от сообщения в сценарии оболочки
  • Как обеспечить, чтобы скрипт успешно выполнялся как транзакция
  • Разбиение файла с использованием префикса
  • Почему комментирование этой строки в сценарии оболочки (с использованием pdftk) вызывает проблемы?
  • Как получить последний аргумент функции a / bin / sh
  • Как получить IP-адрес клиента SSH с помощью сценария оболочки?
  • Linux и Unix - лучшая ОС в мире.