«subshell» 태그된 질문

2
괄호는 실제로 명령을 서브 쉘에 넣습니까?
내가 읽은 것에서 괄호 안에 명령을 넣으면 스크립트를 실행하는 것과 비슷한 하위 셸에서 명령을 실행해야합니다. 이것이 사실이라면, x가 내보내지지 않으면 어떻게 변수 x를 볼 수 있습니까? x=1 (echo $x)명령 행에서 실행 하면 1이됩니다. echo $x스크립트에서 실행 하면 예상대로 아무것도 발생하지 않습니다.

3
$ ()가 서브 쉘입니까?
나는 될 수있는 서브 쉘 구문을 이해하는 (<commands...>)것입니다, $()당신은에서 변수 값을 검색 할 수있는 서브 쉘은? 참고 : 이것은 설명서의 다른 표현을 기반으로 bash 4.4에 적용됩니다.
51 bash  subshell  syntax 

4
스크립트를 종료하지 않는 이유는 무엇입니까 (1 종료)?
스크립트가 있는데 원하는 때 종료되지 않습니다. 동일한 오류가있는 예제 스크립트는 다음과 같습니다. #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' 출력을 보겠다고 가정합니다. :~$ ./test.sh 1 :~$ 그러나 실제로 볼 수 있습니다 : :~$ ./test.sh 1 2 :~$ 않습니다 ()어떻게 …

3
중괄호로 배시 서브 쉘 생성
따르면 이 , 중괄호 명령 목록을 배치하는 것은 현재 셀 환경에서 실행되는리스트를 야기한다. 서브 쉘이 작성되지 않습니다 . ps이것을 실제로 사용 하기 위해 사용 이것은 명령 줄에서 직접 실행되는 프로세스 파이프 라인의 프로세스 계층입니다. 4398은 로그인 쉘의 PID입니다. sleep 2 | ps -H; PID TTY TIME CMD 4398 pts/23 00:00:00 …
31 bash  subshell 

6
서브 쉘에서 쉘 스크립트 종료
이 스 니펫을 고려하십시오. stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } 일반적으로 func호출되면 스크립트가 종료되며 이는 의도 된 동작입니다. 그러나 다음과 같은 하위 셸에서 실행되는 경우 result=`func` 스크립트를 종료하지 않습니다. 이것은 호출 코드가 …

3
서브 쉘에 있는지 어떻게 알 수 있습니까?
exit터미널에서 나가지 않도록 내장 기능을 대체하는 함수를 작성하려고합니다 . SHLVL환경 변수 를 사용하려고 시도했지만 하위 쉘 내에서 변경되지 않는 것 같습니다. $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 내 기능은 다음과 같습니다. exit () { if [[ $SHLVL -eq 1 ]]; …
24 bash  shell  exit  subshell 

3
Bash에서 서브 쉘을 호출하기위한 규칙?
서브 쉘 작성에 대한 Bash 규칙을 오해하는 것 같습니다. 괄호는 항상 자체 프로세스로 실행되는 서브 쉘을 생성한다고 생각했습니다. 그러나 이것은 사실이 아닙니다. 코드 스 니펫 A (아래)에서 두 번째 sleep명령은 pstree다른 터미널에서 결정된 별도의 셸에서 실행되지 않습니다 . 그러나 코드 조각 B에서 두 번째 sleep명령 은 별도의 셸에서 실행됩니다. 스 …


2
서브 쉘에 변수가 보이는 이유는 무엇입니까?
Learning Bash Book은 서브 쉘이 환경 변수 및 파일 디스크립터 등 만 상속하고 내 보내지 않은 변수는 상속하지 않는다고 언급합니다. $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ 아시다시피 셸은 for ()및 for에 대해 두 개의 하위 셸을 만들지 ./file만, …
18 bash  shell  subshell 

1
zsh에서 cat <(cat) vs cat | 고양이 대 고양이 = (고양이)?
내가 예상 cat &lt;(cat)과 cat | cat같은 일을 : 표준 출력 stdin에서 라인을 복사합니다. 내 이해는 둘 다 cat서브 쉘에서 실행 하고 서브 쉘 cat의 stdout을 임시 명명 된 파이프로 cat리디렉션 한 다음 stdin이 파이프로 리디렉션 된 현재 쉘에서 다른 것을 실행 한다는 것입니다. 대신 cat &lt;(cat)터미널에 입력 할 수 …

7
병렬 백그라운드 프로세스 (서브 쉘)의 종료 코드 수집
다음과 같이 bash 스크립트가 있다고 가정하십시오. echo "x" &amp; echo "y" &amp; echo "z" &amp; ..... echo "Z" &amp; wait 하위 쉘 / 하위 프로세스의 종료 코드를 수집하는 방법이 있습니까? 이 작업을 수행하는 방법을 찾고 있으며 아무것도 찾을 수 없습니다. 이 서브 쉘을 병렬로 실행해야합니다. 그렇지 않으면 더 쉽습니다. 일반 …

5
이것은 bash의 버그입니까? `return`은 파이프에서 호출 된 경우 기능을 종료하지 않습니다
요즘 배쉬에 이상한 문제가 있습니다. 스크립트를 단순화하려고 할 때이 작은 코드 조각을 생각해 냈습니다. $ o(){ echo | while read -r; do return 0; done; echo $?;}; o 0 $ o(){ echo | while read -r; do return 1; done; echo $?;}; o 1 return인쇄하지 않고 기능을 종료 $?했어야합니까? 그럼 …

5
상태 저장 bash 기능
Bash에서 모든 호출마다 카운트를 늘리고 반환하는 함수를 구현하고 싶습니다. 불행히도 이것은 하위 쉘 내부에서 함수를 호출하기 때문에 사소하지 않은 것처럼 보이므로 결과적으로 상위 쉘의 변수를 수정할 수 없습니다. 내 시도는 다음과 같습니다. PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 echo $PS_COUNT } ps_count_reset() { let PS_COUNT=0 } 이것은 다음과 같이 사용됩니다 (따라서 …

3
“서브 쉘”과“자식 프로세스”의 정확한 차이점은 무엇입니까?
이것 과 이것 에 따르면 , 괄호를 사용하여 서브 쉘이 시작됩니다 (…). ( echo "Hello" ) 이것 , 이것 과 이것 에 따르면 , 명령이&amp; echo "Hello" &amp; Posix 스펙 은이 페이지 에서 단어 subshell를 사용 하지만이를 정의하지 않으며 동일한 페이지에서 "자식 프로세스"를 정의하지 않습니다 . 둘 다 커널 fork()기능을 …
16 bash  shell  subshell 

3
트랩은 서브 쉘에 상속됩니까?
다음 스크립트를 시도했습니다. #!/bin/bash trap 'echo "touching a file" &amp;&amp; touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo 위 스크립트의 출력은 다음과 같습니다. [root@usr1 my_tests]# ./test.sh foo1 foo touching a file 그러나 나는 foo1서브 쉘 에서 호출 될 때 트랩이 호출 될 것으로 …
14 shell  trap  subshell 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.