Запуск .sh с рабочего стола наполовину & ​​hellip;

У меня есть .sh-скрипт Call mainSc.sh, который выглядит так:

#!/bin/bash
{
cd /home/myrepository
export LD_LIBRARY_PATH=/home/myrepository/build/src/
./myscript.sh | python mypythonscript.py
} || {
notify-send "it didn't work..."
}

И моя проблема в том, когда я запускаю его с терминала (./mainSc.sh), он отлично работает и когда Я пытаюсь запустить его из созданного мной .desktop, он запускается и работает до тех пор, пока ./myscript.sh и мой скрипт python не сработают ... Я действительно не понимаю, почему ....

спасибо большое!

1
задан 29 July 2016 в 21:16

1 ответ

Это поведение можно легко объяснить, если вы имеете дело со стандартным входом в myscript.sh (например, при ожидании ввода пользователем). Поскольку терминал не подключен, ваш скрипт завершается, например cat.

1
ответ дан 23 May 2018 в 07:39
  • 1
    Спасибо за Ваш ответ. Могу ли я открыть и подключить терминал к этому процессу, чтобы разрешить это? если да, то как? – Dadep 29 July 2016 в 22:01
  • 2
    Лучший способ сделать это - изменить скрипт myscript.sh. На самом деле нет смысла запускать программу командной строки в графической среде, если она требует некоторых текстовых взаимодействий. Однако в зависимости от того, что делает myscript, вы можете использовать графический интерфейс для связи с ним, отправить его по умолчанию при запуске скрипта или, что более сложно, передать ему открытый named pipe , который вы закрыть потом. Но действительно, изменение myscript.sh является лучшим решением здесь, если вы можете себе это позволить. – MayeulC 29 July 2016 в 22:14
  • 3
    myscript.sh запускает код (в c ++), который только делает онлайн-анализ видео (событие обнаружения), насколько я знаю, нет ввода, только вывод. этот вывод я хочу отправить на скрипт python, который я сделал. Какие получают "онлайн" информацию из первого кода и подсчет количества событий, а затем запись на последовательный порт. ... – Dadep 29 July 2016 в 22:22
  • 4
    Вероятно, вы могли бы попробовать использовать экран, если это вариант для вас: screen -t "mainSc" 2 bash -c '/my/script.sh' (или просто напишите весь сценарий между этими цитатами). Я не уверен, что здесь нужен bash -c. – MayeulC 1 August 2016 в 09:09
  • 5
    Я действительно знал экран, я посмотрю, это может быть решение. Я обнаружил, что у меня была проблема с выполнением python. – Dadep 1 August 2016 в 16:05

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

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