У меня есть два процесса fooи bar, связанных с трубой: $ foo | bar barвсегда выходит 0; Я заинтересован в коде выхода foo. Есть ли способ получить это?
Большинство оболочек предоставляют такие функции, как &&и ;цепочка выполнения команд определенным образом. Но что, если команда уже запущена, могу ли я как-то добавить еще одну команду, которая будет выполняться в зависимости от результата первой? Скажи я побежал $ /bin/myprog some output... но я очень хотел /bin/myprog && /usr/bin/mycleanup. Я не …
Когда процесс прерывается сигналом, способным обрабатывать, например, SIGINTили SIGTERMон не обрабатывает сигнал, каким будет код выхода процесса? Как насчет таких необработанных сигналов SIGKILL? Из того, что я могу сказать, уничтожение процесса с SIGINTвероятным результатом приводит к коду выхода 130, но будет ли это зависеть от реализации ядра или оболочки? $ …
У меня есть скрипт, который не выходит, когда я этого хочу. Пример сценария с той же ошибкой: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Я хотел бы увидеть вывод: :~$ ./test.sh 1 :~$ Но я на самом деле вижу: …
Я хочу проверить свой сценарий с помощью команды, которая не работает. Я мог бы использовать существующую команду с плохими аргументами. Я также мог бы написать простой скрипт, который сразу же завершается с ошибкой. И то, и другое легко и работает для меня, но если для этого есть стандартная команда, я …
Я уже довольно давно изучаю поведение ядра Linux, и мне всегда было ясно, что: Когда процесс умирает, все его дочерние элементы возвращаются initпроцессу (PID 1) до тех пор, пока они в конечном итоге не умрут. Однако недавно кто-то с большим опытом работы с ядром сказал мне, что: Когда процесс завершается, …
Рассмотрим этот фрагмент: stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } Обычно, когда funcвызывается, сценарий завершается, что является предполагаемым поведением. Тем не менее, если он выполняется в под-оболочке, например, в result=`func` это не выйдет …
Этот скрипт не повторяет "после": #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit Также было бы, если бы я удалил -eопцию в строке shebang, но я хотел бы оставить ее, чтобы мой скрипт останавливался, если произошла ошибка. …
Есть ли способ заставить google-chromeвыйти из терминала, кроме использования killall google-chrome? Я хотел бы иметь возможность закрыть его из сценария, не убивая его.
Я пытаюсь написать функцию, чтобы заменить функциональность exitвстроенной, чтобы предотвратить выход из терминала. Я попытался использовать SHLVLпеременную окружения, но она не меняется внутри подоболочек: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 Моя функция заключается в следующем: exit () { if [[ …
В UNIX, когда родительский процесс исчезает, я думал, что все дочерние процессы сбрасывают init как своего родителя. Разве это не правильно все время? Есть ли исключения?
Я запутался в значении кода завершения в конце скрипта bash: я знаю, что код выхода 0 означает, что он успешно завершился, и что есть еще много кодов выхода (127, если я не ошибаюсь?) Мой вопрос заключается в том, что, когда код завершения 0 отображается в конце скрипта, он принудительно устанавливает …
У меня есть скрипт bash, который устанавливает -e, поэтому скрипт будет завершаться при любом состоянии выхода! = 0. Я пытаюсь сделать некоторую базовую арифметику оболочки, назначенную для переменных, и иногда выражение равно 0, что приводит к состоянию выхода команды let или expr, равному «1». Вот пример: #!/bin/bash -ex echo "Test …
Есть ли способ отменить все соединения SSH и закрыть PuTTY «одним выстрелом»? Я работаю в Windows 7 и использую PuTTY для SSH на различных хостах Linux. Пример того, как я работаю: SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> ssh host8 …