Существует ли стандартная команда, которая всегда выходит с отказом?

Вы, возможно, должны задержать выполнение сценария, пока X правильно не в порядке; что-то вроде этого:

#!/bin/sh
( sleep 5 && exec xterm -e top ) &

Сделайте этот исполняемый файл и добавьте его к своим приложениям автоматического запуска.

Можно экспериментировать с сокращением суммы sleep удовлетворять тому, в чем Вы нуждаетесь.

43
01.09.2017, 19:23
1 ответ

Можно использовать false (/bin/false, /usr/bin/false, или окружите встроенный):

$ false || echo It failed.
It failed.
$

Можно также использовать exit 1 от подоболочки:

$ (exit 1) || echo Gosh, it failed too.
Gosh, it failed too.
$
52
27.01.2020, 19:34
  • 1
    Кроме того, можно портативно назвать выход с любым числом в диапазоне 1-255, включительно. (Большинство оболочек применит 255 операций по модулю на любые другие числа, данные выходу, так на практике можно сойти с рук другие числа, хотя они просто принуждены в вышеупомянутый диапазон. Но некоторые оболочки сделают другие вещи, например, выйдут с синтаксической ошибкой (все еще состояние отказа хотя), если названо с отрицательной величиной. Подобные Unix системы только поддерживают коды выхода в диапазоне 0-255 содержащих, который является, почему Вы не можете полагаться на четко определенное поведение для других значений, данных выходу во всех оболочках.) –  mtraceur 26.10.2016, 08:38
  • 2
    И как немного мелочи, если Вам не нужна мобильность к действительно старым/неясным оболочкам, можно также сделать ! : (или любая другая команда, которая обычно возвращает успех). ! говорит для отрицания статуса выхода команды, которая следует. : просто noop встроенная команда, которая всегда выходит с успехом. (Просто удостоверьтесь, что оставили пространство после ! и перед отрицаемой командой, иначе это попытается проанализировать его как одну команду, запускающуюся с a ! символ - или в случае оболочек как bash в интерактивном режиме это анализирует его как один из тех специальных модификаторов истории.) –  mtraceur 26.10.2016, 08:44

Теги

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