Как создать цепочку команд?

Я хочу создать цепочку команд, например, cp ab && mv bc && rm a .

Я пробовал делать cp ab && mv bc && rm a & но это только фоны последнего процесса.

Как создать цепочку команд?

2 Solutions collect form web for “Как создать цепочку команд?”

cp ab && mv bc && rm a & является правильным. & имеет более низкий приоритет, чем && . На самом деле & имеет более низкий приоритет, чем что-либо другое ; и newline: & находится в той же синтаксической категории, что и ; , причем разница заключается в том, что ; запускает список команд на переднем плане & запускает его в фоновом режиме. Вы можете проверить это самостоятельно:

 $ dash -c 'sleep 2 && echo waited & echo backgrounded' backgrounded $ waited информация $ dash -c 'sleep 2 && echo waited & echo backgrounded' backgrounded $ waited 

То же самое с pdksh, ksh93, bash, csh, tcsh.

Исключением является zsh, что является странно несовместимым. Это описано в руководстве :

Если подсписок заканчивается символом & , &| , или &! , оболочка выполняет последний конвейер в нем в фоновом режиме и не ждет его завершения (обратите внимание на отличие от других оболочек, которые выполняют весь подсписчик в фоновом режиме).

К сожалению, zsh ведет себя таким образом даже в режиме совместимости sh или ksh. Чтобы убедиться, что вся команда выполнена в фоновом режиме, поместите скобки или круглые скобки вокруг него. Скобки создают подоболочку, а фигурные скобки – нет, но это не имеет значения (кроме как микро-оптимизация в некоторых оболочках), так как фоновая команда находится в подоболочке в любом случае.

 { cp ab && mv bc && rm a; } & 

вы можете поместить его в скобки, такие как (cp ab && mv bc && rm a )& включить всю цепочку.

  • Не удалось объединить файлы с помощью find ./subdir/* -print0 | сортировать | xargs -0 cat> merge.txt
  • Запуск одной команды за другой в zsh при нажатии Ctrl-C
  • Автоматически раскрасить вывод дерева
  • Множественные замены в zsh?
  • Как сделать zsh «правильной» функциональностью, помните мои решения по исправлению заклинаний
  • Ошибка анализа zsh после псевдонима do = ...
  • Ищете удобный способ создания «постоянного массива»,
  • Переопределяемые функции в Zsh
  • Отобразить имя китайской машины в командной строке
  • zsh: SHARE_HISTORY или INC_APPEND_HISTORY перерывы EXTENDED_HISTORY
  • Экспорт истории команд в скрипт командной оболочки
  • Выключить и перезапустить контрольный код?
  • Interesting Posts

    Нужно ли монтировать / загружаться на отдельный первичный раздел?

    Как настроить kmail2 для использования клиентских сертификатов для доступа к POP3 и IMAP

    Как диагностировать надежную ненадежную связь?

    7.1 аудио с AVR: только передний левый и правый выходы

    Как перебирать массив bash при удалении элемента?

    Получено меньше вывода с параметром print0 для поиска?

    Изменить допустимые действия ключа в GPG?

    Передний план и фон

    Что происходит, когда я копирую файл из одного сетевого местоположения в другое

    Как назначить значения нескольким переменным в командной строке с барами

    Что означает «-» в командной строке Linux / Unix?

    Войдите в систему как пользователь unix, используя пароль, хранящийся в htpasswd

    Почему Linux устанавливается больше, чем я читал? Некоторые новички

    Приведение процесса к файловому дескриптору в переменную

    Сервер Xorg не запускается

    Linux и Unix - лучшая ОС в мире.