Ну, из сценария это означает, что 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, то это, очевидно, проблема именно так, как предполагает логика сценария.