Используя скрипт / bin / sh -c gnome-terminal, чтобы открыть 4 терминала Windows при запуске

Я пытаюсь открыть 4 терминала Windows при запуске и для этого использую приведенный ниже скрипт. Тем не менее, он открывает только 1 оконное окно вместо 4.

/bin/sh -c gnome-terminal; /bin/sh -c gnome-terminal; /bin/sh -c gnome-terminal; /bin/sh -c gnome-terminal

Я запускаю скрипт из «Автозагрузки приложений». Если я запускаю скрипт вручную из окна терминала, он открывает 4 окна терминала.

Так вот мой вопрос. Почему сценарий открывает только 1 окно из «Startup Applications», когда он должен открывать 4?

0
задан 15 May 2015 в 20:29

2 ответа

Вам не нужно /bin/sh -c при выполнении его из сценария. Кроме того, используйте & вместо ;, как так

#!/bin/bash



gnome-terminal -t WINDOW-ONE &
gnome-terminal -t WINDOW-TWO &
gnome-terminal -t WINDOW-THREE &
gnome-terminal -t WINDOW-FOUR &

я верю причине, почему она ведет себя как он, делает в Вашем исходном сценарии, то, потому что оболочка ожидает каждой строки сценария для завершения сначала, таким образом, она ожидает первого окна, которое будет сделано. С & Вы разъединяете терминал гнома от сценария, и сценарий может перейти к следующей строке. Надежда, которая имеет смысл

0
ответ дан 15 May 2015 в 20:29

Никакая потребность использовать отдельный сценарий для запуска четырех Windows терминала на Запуске

Вам не нужен отдельный сценарий для открытия четыре gnome-terminal окна, можно просто объединить их в одну команду, чтобы быть добавленными для Запущения Приложений.

, Как использовать сложные команды в .desktop файле

, Когда Вы добавляете команду для Запущения Приложений, она на самом деле создает .desktop файл в ~/.config/autostart, который работает команда на запуске (на самом деле входят в систему). Синтаксис для сложных команд, которые будут использоваться в .desktop файл, следующие:

/bin/bash -c "<complicated_command>"

Однако: только необходимо использовать /bin/bash -c единственный время, таким образом, полная команда должна быть похожей:

/bin/bash -c "gnome-terminal&gnome-terminal&gnome-terminal&gnome-terminal"

Выполнение так, Вам не нужен отдельный сценарий, чтобы сделать задание.

команды Объединения в цепочку

Как уже упомянутый, необходимо объединить команды в цепочку с &, не с ;.

От man bash:

, Если команда завершается оператором управления & оболочка выполняет команду в фоновом режиме в подоболочке. Оболочка не ожидает команды для окончания, и статус возврата 0. Команды разделяются a; выполняются последовательно; оболочка ожидает каждой команды для завершения в свою очередь. Статус возврата является статусом выхода последней выполняемой команды.

0
ответ дан 15 May 2015 в 20:29

Другие вопросы по тегам:

Похожие вопросы: