Mainscript выполняет подписки в новом окне терминала - PullRequest
0 голосов
/ 28 марта 2019

"Debian 9 64x - LXDE"

Я пытаюсь создать скрипт установки в bash. Предположим, я хочу установить самбу. Из основного сценария я вызываю скрипт установки для samba \folder\samba.sh. Сценарий samba.sh должен выполняться в новом окне терминала, поэтому я могу следить за ошибками установки.

Скрипт должен работать как описано ниже:

  • Скрипт /mainscript.sh предоставляет только пользовательскую информацию, взаимодействие и выполняет несколько подписок (/folder/subscripts.sh).
  • Сценарий /mainscript.sh должен создать новое окно терминала, передать путь и имя subscript.sh и выполнить их в новом окне терминала.
  • Сценарий /mainscript.sh должен выполнять только один индекс (/folder/subscript.sh) за раз! Если subscript.sh работает, то сценарий должен ждать, пока новое окно терминала не закроется.
  • subscript.sh выполняет некоторый код с привилегиями root.

Вопросы:

  1. Как мне создать новое окно терминала, передать индекс и выполнить его в новом окне терминала?

  2. Как я могу убедиться, что скрипт (mainscript.sh) запускает только один индекс (subscript.sh) за раз?

Пример:

* * Mainscript.sh тысяча сорок-девять
    #!/bin/sh
    # This is the content of the mainscript.sh
    # subscript1 and subscript2 must not be executed at the same time!
    # the mainscript needs to wait when a subscript gets executed!

    echo "hello, this script runs in terminal window (((A)))"
    xterm /opt/subscript1.sh
    echo "samba - Installed"
    xterm /opt/subscript2.sh
    echo "samba - removed"

subscript1.sh

    #!bin/sh
    # This is the content of the subscript1

    echo "This script runs in a new terminal window (((B)))"
    apt-get install samba
    # instructions done .... close the terminal window (((B))) now

subscript2.sh

    #!bin/sh
    # This is the content of the subscript2

    echo "This script runs in a new terminal window (((C)))"
    apt-get remove samba
    # instructions done .... close the terminal window (((C))) now

1 Ответ

0 голосов
/ 28 марта 2019

После выяснения того, что вы действительно хотите, чтобы новое окно терминала появилось в LXDE, вот возможное решение.

Вероятно, в Debian LXDE установлен xterm или lxterminal. В приведенном ниже примере используется lxterminal. Для xterm используйте команду «xterm -e»

Начните с выполнения manscript.sh в своем собственном окне:

$ lxterminal --command=/mainscript.sh
#!/usr/bin/sh

<section that provides user information>

# Call subscripts that will run in sequence
lxterminal --command=/folder/subscripts.sh

Когда будет завершен процесс subscripts.sh, окно нового терминала закроется и вернет управление в mainscript.sh. Вы можете запустить только один индекс за один раз, вызвав их последовательно.

...