Intereting Posts
Как установить горячую точку, которая проксимизирует все соединения с tor? Кто хранит буферы копирования / вставки в X11? Как присвоить значение переменной внутри цикла for в bash? Почему есть две записи на устройство на / dev / input / by-path Как узнать последний использованный -max-time в cURL? Как передать переменную среды скрипту? Sublime Text 2 не обнаруживает библиотеку python, если установлен в / opt Какую файловую систему / файловую систему использовать для раздела / tmp Как mv и принимать разрешения целевого каталога Обнаружение файлов расширений не выполняется за период Как я могу использовать (sed | awk) для маскирования адреса электронной почты со звездочками типа <j ****** e @ g ***. Com> Запуск Unison с incrond (inotify cron daemon) Получение значения буфера обмена Замените строку последовательным счетчиком, сбросив счетчик на каждой новой строке Odd alias "find. -name '* \! {*} *' -ls "в Unix Power Tools

синтаксическая ошибка рядом с неожиданным токеном `(‘ИЛИ нет правильного выполнения

Я пытаюсь сделать что-то на X-каталогах, но не на Y-через терминал. Когда я делаю

cd /mnt/dir/ && for i in !(dira|dirb|dird)/; do echo "$i"; done && cd y/ && for i in !(dirz)/; do echo "$i"; done 

на терминале все нормально, но когда я пытаюсь поместить его в файл .sh и выполнить его, я получаю syntax error near unexpected token ( или, если я сбегаю ( и | я просто получаю часть for вывода (например !(dira|dirb|dird)/ )

Как я могу это исправить, чтобы я мог работать с файлом .sh или даже с псевдонимом внутри моего файла .bashaliases?

Вы используете расширенный шаблон сглаживания. Чтобы это работало в вашем скрипте, убедитесь, что вы

  1. используя bash для выполнения скрипта, и
  2. включите extglob оболочки extglob в сценарии.

Вы можете включить extglob оболочки extglob с помощью команды

 shopt -s extglob 

в источнике сценария.