Последняя команда в файлах .sh не будет запущена

Вы должны попробовать резину. Это инструмент командной строки для обработки всех задач, связанных с компиляцией документов TeX в pdf, dvi и т. Д.

1
задан 3 April 2013 в 23:26

1 ответ

Ну, из сценария это означает, что nautilus -q вернул ненулевой код выхода. Следовательно, && оценивается как false, а nautilus -n не выполняется.

Вы скажете: запустите nautilus -n, если nautilus -q преуспел. Определение успеха - это код выхода из 0 в оболочке.

Используйте ; вместо &&, чтобы сделать это безоговорочно или использовать небольшой скрипт-оболочку для перевода возможных кодов возврата, которые вы хочу принять как «успех» в 0.

Другим способом срывать запущенные экземпляры nautilus, очевидно, будет использовать pkill следующим образом:

pkill -u $(whoami) ^nautilus

Вы может потребоваться указать конкретный сигнал (pkill -SIGNALNAME -u ...), но я не нашел документацию, на которую реагируют сигналы nautilus.

Вышеупомянутая команда убивает все экземпляры nautilus, выполняющиеся как вы ([ f17]).

Используйте это, чтобы выяснить, что вернула первая команда (nautilus -q):

nautilus -q || echo "exit code: $?"

Что вы видите? Если это не 0, то это, очевидно, проблема именно так, как предполагает логика сценария.

2
ответ дан 24 May 2018 в 23:53
  • 1
    Обращаясь только к первой части этого ответа (часть, которая является ответом, тогда как вторая часть - это просто запрос информации): Это, вероятно, не очень хорошее решение, потому что целью является успешное restart [!d0 ] Nautilus, чтобы изменения, внесенные командой xinput, были применены. – Eliah Kagan 3 April 2013 в 23:07
  • 2
    @EliahKagan: Понятно. Я использую Ubuntu только для терминалов, поэтому мне все равно пришлось искать nautilus -q. Позвольте мне обратиться к этому. – 0xC0000022L 3 April 2013 в 23:09
  • 3
    @ 0xC0000022L нет вывода от nautilus -q || echo " код выхода: $? ", он просто завершает работу nautilus, как обычно, и мне нужно снова запустить nautilus. И изменение & amp; & amp; с ; тоже не работает. – Nur 3 April 2013 в 23:23
  • 4
    @Nur: как насчет (последняя строка) как (nautilus -q || pkill -u $(whoami) ^nautilus || true) && (sleep 2; nautilus -n)? – 0xC0000022L 3 April 2013 в 23:36
  • 5
    @ 0xC0000022L То же самое. Работает в терминале. Работает в отдельном (другом) файле .sh. Но я не работал над своим сценарием. – Nur 4 April 2013 в 00:15

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

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