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

У меня есть этот скрипт в файле * .sh, чтобы включить естественную прокрутку. Я добавил его в Startup Application.

#!/bin/sh
xinput set-prop 11 268 -106 -106
nautilus -q && nautilus -n

Проблема в том, что когда я вхожу, последняя команда (nautilus -n) не запускается - что раздражает, потому что я не могу использовать кнопку Super для открытия Dash - и мне приходится запускать nautilus вручную , Что не так?

ОБНОВЛЕНИЕ:

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

nautilus -q && touch $HOME/Desktop/reported-success.txt дайте мне текстовый файл,

и результат nautilus -q && nautilus -n &> $HOME/nautilus-output.log будет:

Initializing nautilus-open-terminal extension
Initializing nautilus-image-converter extension
Initializing nautilus-dropbox 1.4.0
3
задан 3 April 2013 в 22:26

2 ответа

Завершите сценарий символом перевода строки / ввода или пустой строки
, иначе последняя команда не будет выполнена.

0
ответ дан 3 April 2013 в 22:26

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

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

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

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

pkill -u $(whoami) ^nautilus

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

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


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

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

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

0
ответ дан 3 April 2013 в 22:26

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

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