Завершение Терминального процесса для особого результата

например, рассмотрите следующую ситуацию::

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

Я знаю, что мог сделать то же в c, C++, Java, и т.д. и т.д.. Но я хотел бы сделать это с помощью сценария удара.

Примечание:: Если только 'после того, как' я встречаюсь с 'выводом' '2' (или что-либо) затем, процесс должен быть завершен, я подчеркиваю это, потому что 'Я должен завершить терминальный процесс для особого результата'.

1
задан 21 March 2014 в 22:24

3 ответа

оболочка удара знает свой родительский процесс, таким образом, Вы могли сделать:

(( number == 2 )) && kill $PPID

касательно: http://www.gnu.org/software/bash/manual/bashref.html#Bash-Variables

1
ответ дан 11 November 2019 в 12:50

Можно использовать простое if оператор, чтобы сделать это:

# your file reading code goes here, make sure $output is set
if [ $output -eq 2 ]; then return; fi
0
ответ дан 11 November 2019 в 12:50

То, что Вы хотите, должно уничтожить оболочку, от которой Вы выполняете сценарий. Это немного хитро, поскольку выполнение сценария породит другую оболочку и тривиальные методы уничтожения, это (kill -9 $ или exit) будет работать над , метал икру оболочка, не та, вызванная терминалом.

единственный надежный способ, которым я нашел выполнения так, к источник Ваш сценарий вместо того, чтобы выполнить его. Таким образом вместо:

bash script.sh

сделайте:

. script.sh

это заставит материал работать в оболочке вызова, не порожденной.

сам сценарий легок, как замечено в другом ответе:

while true; do sleep 1; number=$RANDOM; echo $number; if [ 2 = 2 ]; then exit; fi; done

На самом деле при выполнении этого как остроты в текущей оболочке это будет закрывать терминал, когда это будет видеть значение 2.

Вы не сказали, куда случайные числа прибудут из; я использовал СЛУЧАЙНЫЙ удар, встроенный который выходные целые числа в диапазоне 0-32767.

0
ответ дан 11 November 2019 в 12:50

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

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