5
ответов

Что делает ввод одного восклицательного знака в Bash?

Bash использует восклицательные знаки для раскрытия истории, как описано в ответах на этот вопрос (например, sudo !! запускает предыдущую командную строку с sudo). Однако я не могу найти нигде, что объясняет ...
15.02.2019
5
ответов

Получение функциональных возможностей «гарантировать» / «наконец» в команде оболочки (не сценарии)?

Мне нужно знать, была ли команда выполнена успешно или неудачно, и безоговорочно выполнить некоторую очистку после этого. Ни один из обычных вариантов выполнения последовательных команд здесь не подходит: ...
05.06.2017
4
ответа

Почему определения истинности и ложности в stdbool.h полностью противоположны истине и ложности программ UNIX?

stdbool.h обычно определяется как :#определить ложь 0 #определить true 1 (Исходники :OpenBSD, musl и т. д. )тогда как программа unix false -, которая просто имеет код неудачного состояния, определяется как :инт главная (...
26.03.2021
4
ответа

Bash — выполнить две команды и получить статус выхода 1, если первая не удалась

В приведенном ниже случае команда отчета всегда должна выполняться, но мне нужно получить статус выхода 1, если тестовая команда не удалась: test;report эхо $? 0 Как я могу сделать это в одной строке bash без ...
17.05.2019
4
ответа

Существует ли подобная ping программа, которая возвратит false, когда пакет будет потерян?

я пытаюсь диагностировать сетевую нестабильность на своей домашней LAN - я теряю возможность соединения между своим маршрутизатором и своим кабельным модемом. В моем сценарии оболочки я хотел бы проверить с помощью ping-запросов первый IP-адрес мимо моде
18.07.2018
4
ответа

Как извлечь статус завершения команды в переменную?

Я начал изучать Bash пару дней назад. Я пытаюсь получить статус выхода для выражения grep в такой переменной: check = grep -ci 'text' file.sh, а на выходе я получил "Нет" ...
16.02.2018
4
ответа

Как обнаружить ошибку с помощью подстановки процесса

Этот вопрос похож на следующую ссылку, но сосредоточен на использовании командной строки (bash оболочка). На простом примере при выполнении следующей команды: $ cat <(date); эхо $? Пт, 7 июля, 21: ...
10.07.2017
4
ответа

Код выхода по умолчанию, когда процесс завершается?

Когда процесс уничтожается с управляемым сигналом как SIGINT или SIGTERM, но он не обрабатывает сигнал, каков будет код выхода процесса? Что относительно для неуправляемых сигналов как...
07.09.2016
3
ответа

Передача 'false' не дает не -нулевой код результата

Я понимаю, что это :правда; эхо "$?" #0 ложный; эхо "$?" #1 правда | эхо "$?" #0 Но не это :false | эхо "$?" #0...Почему не печатается 1? И как я мог заставить...
21.04.2020
3
ответа

BASH-скрипт: Попытка получить 3 кода возврата/статуса выхода, чтобы дать мне «глобальный выход»

У меня есть рабочий global_exit, который я откуда-то скопировал, он предназначен для двух выходов команды. Переименование 'echo' в 'ech' для принудительного отказа позволяет мне проверить работу всех перестановок - и они работают здесь: echo "$...
17.04.2020
3
ответа

У меня длинный выполняемый сценарий, но я хочу иметь возможность прокручивать выходные данные stdout, так как он выполняет

У меня есть сценарий, который работает долго. Он имеет много выхода, чтобы stdout, что я хотел бы иметь возможность читать в реальном времени, но и прокручивать вверх и вниз. Всякий раз, когда новая строка вывода...
08.02.2019
3
ответа

Сценарий Bash, выполняемый над SSH, возвращается неверный код выхода 0

Я пытаюсь автоматизировать процесс, который включает в себя управление сценариями на различных машинах через SSH. Крайне важно захватить как вывод, так и код возврата (для обнаружения ошибок). Установка выхода ...
18.12.2018
3
ответа

Какие режимы выхода существуют в shell-скриптинге вообще и в Bash в частности?

Я знаю, что в shell-скриптинге "выход" обычно означает добровольное или, по крайней мере, успешное завершение сеанса (или процесса внутри сеанса) и что существует несколько различных режимов выхода; ...
03.10.2018
3
ответа

Bash: выполненный command2, если command1 перестал работать

Я хочу сделать что-то вроде этого: если успех эха cmd1 && cmd2 еще повторяет сокрушительный провал fi, Как я должен сделать это?
01.09.2017
3
ответа

Возвращать код выхода, не убивая терминал вызывающего пользователя?

У меня возникли трудности с получением возвращаемого значения из скрипта. Сценарий, который доставляет мне проблемы, это second.sh ниже. Но есть взаимодействие со скриптом first.sh, и это ...
09.03.2016
2
ответа

Сценарий оболочки возвращает 0 статус выхода _, несмотря на синтаксическую ошибку

Рассмотрим этот скрипт :#!/bin/sh foo=1 если [[ ! -z $foo ]]; затем эхо abc fi Он использует синтаксис Bash [[... ]], который не работает (как ожидалось ), когда я запускаю его с оболочкой по умолчанию в Ubuntu (...
23.05.2021
2
ответа

лучший диапазон для пользовательского кода выхода в Linux?

Здесь я разрабатываю приложение, которое может завершаться по различным причинам. Каков наилучший диапазон для пользовательского кода выхода (, например 150 -200 )? Я знаю, что это мнение -основано, но все же я хотел узнать...
13.08.2020
2
ответа

возвращаемый код отдельного скрипта, несмотря на то, что они выполняются параллельно

У меня есть файл jar, который выполняется параллельно с несколькими именами таблиц в качестве аргументов с помощью команды nohup в unix. nohup java -jar batchorch.jar $tablename, и я использовал строки ниже для получения...
11.08.2020
2
ответа

Почему я получаю сообщение, что команда не найдена для 'ls' при использовании '$?'?

Проблема назначения :Выполните «хорошо» и «ls» в терминале и проверьте статус выполнения. Что я сделал хорошо;$? выход :zsh :команда не найдена :хорошо zsh :команда не найдена :127 ls;$? выход :викторина.ш зш :...
16.07.2020
2
ответа

Сбой сценария при сбое команды, но в любом случае запускать все команды

В скрипте есть несколько команд, которые мне нужно запустить, это специальный линтер для исходного кода. При каждом запуске генерируется отчет и происходит сбой с кодом выхода 1 в случае нарушения правил. Мне нужно выполнить все команды...
06.07.2020
2
ответа

Можно ли использовать оператор && в цикле шаблонов команд терминала?

Я хотел сделать список похожих четких команд более понятным для чтения, поэтому я сделал небольшой терминальный цикл для того, что в \cache\thumbs\ ; сделать мой шаблон $what:clear; done Это прекрасно работает, однако...
23.09.2019
2
ответа

Как зациклиться 3 раза в сценарии bash, если не удается выполнить отправку докера?

У меня есть bash-скрипт, в котором docker просто отправляет изображение: docker push $CONTAINER_IMAGE:latest Я хочу зациклиться 3 раза, когда это не удается. Как мне этого добиться?
11.07.2019
2
ответа

Статус выхода последней команды с помощью PROMPT_COMMAND

Я хочу сохранить статус выхода последней выполненной команды (в файле, в переменной, это не имеет особого значения), но это должно быть сделано автоматически в интерактивная оболочка, запуск чего-то вручную...
18.05.2019
2
ответа

Почему echo$?' возвращает 0, хотя ожидается 1?

Для следующей программы я получаю 0 вместо echo$? хотя я ожидаю 1. int main() { вернуть 1; }
25.04.2019
2
ответа

Почему я не могу получить вывод pgrep прямо для переменной в сценарии bash?

Я пытаюсь создать сценарий, чтобы либо выйти из compton, если он работает, либо запустить его, если он не работает. Я прочитал от человека, что он должен выйти из 1, если процесс найден, поэтому я попытался создать сценарий, который ...
20.03.2019
2
ответа

Как проверить код выхода команды внутри, если утверждение

Я пытаюсь вернуть код выхода 0, если команда выходит с кодом 143 (таймаут, из "команды таймаута"), 1 в противном случае. В связи с внешним ограничением (CI скрипт), я должен запустить команду и сделать ...
09.03.2019
2
ответа

Bash Script Function Return True-False

Я хочу запросить функцию, вернув значение. Мои коды следующие; check () {file = / root / Turkiye.txt local funkx = $ 1 при чтении строки; do if ["$ line" == "$ funkx"] ...
28.02.2019
2
ответа

Как запустить несколько процессов и выхода, если кто-либо из них выходит или не удается

, я использую несколько процессов и хочу выйти с соответствующим кодом выхода (это означает ошибку в случае сбоя, успех иначе), если кто-либо из них не удается или существует. Кроме того, если любой ребенок ...
11.12.2018
2
ответа

Killallow для этого терминала только

при отладке я часто использую Killinall, чтобы убить процесс. Это действительно плохое привычка, потому что в системе может быть больше процессов, запускающих то же имя. Обычно процесс, который я хочу убить, это ...
22.11.2018
2
ответа

LS Код ошибки 2

Я читал человека LS и в конце концов, он рассказывает о состоянии выхода LS. Он говорит: выйти из статуса: 0, если в порядке, 1, если незначительные проблемы (например, не могут получить доступ подкаталога), 2, если ...
24.10.2018

Используйте этот тег, Если Ваш вопрос вращается вокруг определения или использования статуса выхода (код возврата) команды. Общий синтаксис включает $? переменная и && и || символы.

Статус выхода является 8-разрядным целочисленным значением, которое возвращено процессом; это является наиболее часто используемым для определения успешности или неуспешности того процесса.

Для дополнительных материалов для чтения посмотрите страницу POSIX на Информации о статусе.

Для запросов статуса выхода новой команды используйте $? переменная.

Для выполнения второй команды, только если первая команда была успешна (возвратил состояние 0) используйте:

command-one && command-two 

Для выполнения второй команды только если первая неудавшаяся команда (возвратил ненулевое состояние) используйте:

command-one || command-two 

Для большего количества примеров см.: Каковы операторы управления и перенаправления оболочки?