대부분의 쉘 은 특정 방식으로 명령 실행 &&과 같은 기능을 제공합니다 ;. 그러나 명령이 이미 실행 중이면 첫 번째 명령의 결과에 따라 다른 명령을 추가하여 실행할 수 있습니까? 내가 말했어 $ /bin/myprog some output... 그러나 나는 정말로 원했다 /bin/myprog && /usr/bin/mycleanup. myprog너무 많은 시간이 손실되어 모든 것을 죽이고 다시 시작할 …
처리 할 수있는 신호와 같이 SIGINT또는 처리 할 수없는 신호로 프로세스가 SIGTERM종료되면 프로세스의 종료 코드는 무엇입니까? 처리 할 수없는 신호는 SIGKILL어떻습니까? 내가 알 수 있듯이 프로세스를 SIGINT종료하면 종료 코드 가 발생할 수 130있지만 커널 또는 셸 구현에 따라 다를 수 있습니까? $ cat myScript #!/bin/bash sleep 5 $ ./myScript <ctrl-c …
스크립트가 있는데 원하는 때 종료되지 않습니다. 동일한 오류가있는 예제 스크립트는 다음과 같습니다. #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' 출력을 보겠다고 가정합니다. :~$ ./test.sh 1 :~$ 그러나 실제로 볼 수 있습니다 : :~$ ./test.sh 1 2 :~$ 않습니다 ()어떻게 …
나는 꽤 오랫동안 리눅스 커널 동작을 연구 해 왔으며 항상 나에게 분명하다. 프로세스가 죽으면 모든 자식은 프로세스가 init끝날 때까지 프로세스 (PID 1)로 돌아갑니다 . 그러나 최근 커널보다 더 많은 경험을 가진 사람이 나에게 다음과 같이 말했습니다. 프로세스가 종료되면 모든 하위 항목도 종료됩니다 ( NOHUP이 경우 다시 사용하지 않는 한 init). …
이 스 니펫을 고려하십시오. stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } 일반적으로 func호출되면 스크립트가 종료되며 이는 의도 된 동작입니다. 그러나 다음과 같은 하위 셸에서 실행되는 경우 result=`func` 스크립트를 종료하지 않습니다. 이것은 호출 코드가 …
이 스크립트는 "after"를 반향하지 않습니다. #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit 또한 -eshebang 행 에서 옵션을 제거 하면 오류가있을 때 스크립트가 중지되도록 유지하고 싶습니다. grep이 일치하지 않는 것을 오류로 간주하지 않습니다. 갑작스럽게 종료되지 않도록하려면 어떻게해야합니까?
exit터미널에서 나가지 않도록 내장 기능을 대체하는 함수를 작성하려고합니다 . SHLVL환경 변수 를 사용하려고 시도했지만 하위 쉘 내에서 변경되지 않는 것 같습니다. $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 내 기능은 다음과 같습니다. exit () { if [[ $SHLVL -eq 1 ]]; …
bash 스크립트 끝에서 종료 코드의 의미에 대해 혼란 스럽습니다. 종료 코드 0은 성공적으로 완료되었음을 의미하며 종료 코드 번호가 더 많다는 것을 알고 있습니다 (실수하지 않으면 127입니까?) 내 질문은 스크립트 끝에서 종료 코드 0을 볼 때에 관한 것입니다. 스크립트가 실패했거나 다른 의미가 있더라도 종료 코드를 0으로 강제 실행합니까?
-e를 설정하는 bash 스크립트가있어 스크립트가 종료 상태! = 0에서 종료됩니다. 변수에 할당 된 기본 셸 산술을 시도하고 때로는 표현식이 0과 같으므로 let 또는 expr 명령의 종료 상태가 "1"이됩니다. 예를 들면 다음과 같습니다. #!/bin/bash -ex echo "Test 1" Z=`expr 1 - 1` || true echo "Z will print" let "A=4 - …
모든 SSH 연결을 취소하고 "원샷"으로 PuTTY 를 닫을 수있는 방법이 있습니까? Windows 7에서 작업하고 PuTTY를 사용하여 다양한 Linux 호스트에 SSH로 연결합니다. 내가 일하는 방식의 예 : SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> ssh host8 banjer@host8:~> #...doin some work...OK time …