В современных версиях Linux, если вы запустите этот код в bash, это не приведет к сбою вашей системы. Он использует системный вызов fork. '& 'из вашего fucntion означает, что он выполняется в фоновом режиме, и когда он пытается это сделать, он использует системный вызов fork (). Он будет разветвляться так много раз, что вилка будет недоступна, поэтому вы не сможете запускать новые приложения , потому что это тоже необходимо для разветвления, но приложения, которые у вас уже запущены, будут в порядке.
Используйте q
для явного выхода при достижении конечного шаблона.
В GNU sed:
$ cat foo
foo
START
bar
END
blah
START another
$ sed -n '/START/,/END/p; /END/q' foo
START
bar
END
awk
возможно, было бы проще не повторять конечный шаблон:
$ awk '/START/{p=1} p; /END/{exit}' foo
START
bar
END