Могу ли я открыть новый терминал с новым исполняемым файлом?

Я попытался написать скрипт, который открывает новый xterminal, в котором запущен некоторый двоичный файл (не команда). Весь скрипт выглядит так:

#!/bin/bash

XTERM="/usr/bin/xterm -bg WHITE -e /home/ambuj/practice/myBinary"
exec $XTERM 2>&1 &

Скрипт завершается, ничего не делая. Я использую Ubuntu 12.04 LTS.

2
задан 1 March 2014 в 13:55

1 ответ

Я пытался использовать подобный сценарий для создания выполненным сценарий и исполняемый файл. Это функционирует в обоих случаях.

  • Случай исполняемого файла /usr/bin/xlogo:

    #!/bin/bash  
    XTERM="/usr/bin/xterm -bg RED -e /usr/bin/xlogo"
    exec $XTERM 2>&1 &
    

    терминал запускается, таким образом, он делает двоичный файл xlogo; исходная оболочка дает мне подсказку назад, потому что конец сценария его выполнение. Никакая ошибка не возвращается.
    ( Это заканчивается хорошо, потому что xterm запускается ).
    , Если я нажимаю CTRL+C, когда фокус находится на xterm окно , я прерываю xterm сессия и исполняемый файл. Если я закрываю исполняемый файл, xterm сессия конец также.

  • Случай сценария, что я делаю исполняемый файл с chmod u+x MyScript.sh

    #!/bin/bash
    pwd         # To confirm in which directory it works
    echo Please insert something 
    read a      # It asks to input something 
    echo inserted $a We sleep for 10 seconds
    sleep 10    # It will wait 10 seconds to exit  
    

    , Он работает, снова как в двоичном случае.
    , Если я пытаюсь прервать сценарий, это сделает конец xterm сессия также.
    Это показывает ясно что xterm сессия выполнения от тока путь .

<час>

Поэтому, если Ваш файл является исполняемым файлом, действительно не имеет значения, если это - двоичный файл или сценарий.

Классик отлаживают контрольный список:

  1. Проверка, если можно работать /usr/bin/xterm
  2. Проверка, если это - исполняемый файл (в примере с ls -l /home/ambuj/practice/myBinary).

  3. , Если это - исполняемая попытка выполнить его от текущего местоположения (каталог), чтобы видеть, должно ли это быть выполнено от детали путь , если требуется некоторый файл где-нибудь, или если это компилируется для Вашей архитектуры...

Примечание, что , если выполнение из Вашего двоичного файла (или сценарий) концы Ваш терминальный сеанс сразу закончится после , и оно не имеет значения если из-за ошибки или из-за естественные причины .

Никогда не забывают, что ошибка, более трудная найти, является той, которая не делает существует: таким образом, если Ваша программа будет выполнена, и закончите быстро, она будет казаться Вам, что Ваш xterm откроется и закроется, ничего не делая.

0
ответ дан 1 March 2014 в 13:55

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

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