상태 코드를위한 에코?


-1

와 같은 도구를 찾고 echo있지만 상태 코드는

$ sts 120
$ echo $?
120

bash와 같은 환경에서 하위 쉘을 사용할 수 있다는 것을 알고 있습니다.

$ (exit 120)
$ echo $?
120

그러나 쉘과 독립적으로 수행 할 수있는 방법이 있습니까?


2
내가, 내가 질문을 이해 꽤 확실하지 않다 당신이에서 명령의 반환 코드를 얻을 것이다 변수하려는 의미합니까 어떤 예를 들어 배시처럼, 쉘, KSH, ...?
nKn

@nKn 값을 입력으로 사용하고 해당 값으로 종료하는 유틸리티가 있는지 궁금합니다. 순수한 학문.
David Cowden

답변:


1

매개 변수가 전달되었는지 확인하고 그렇지 않으면를 반환하는 매우 간단한 스크립트를 수행 할 수 0있습니다.

#!/bin/bash

if [ $# -eq 1 ]; then
  # There's no parameter
  exit 0
else
  exit $1
fi

실행 권한을 부여하십시오 ( chmod +x returnscript.sh). 다른 스크립트 내에서 스크립트를 호출하는 방법 :

방법 1 :

/path/to/returnscript.sh 100
retcode=$?
# retcode = 100

방법 2 :

/path/to/returnscript.sh
retcode=$?
# retcode = 0

감사. 나는 정말로 모르는 유틸리티가 있는지 묻고있었습니다 ...와 같은 이상한 유틸리티가 많이 cowsay있습니다. 나는 한 사람들이 질문을 내려다보고 왜 이해할 수없는 경우 누군가가 그들에게 이유를 매개 변수로 전달 반환 값과 종료가 (= 나는 이해하지 않는 것을 존재하는 경우 단순히 궁금해서 ...
데이비드 한 Cowden

1
그런 도구가없는 것이 두려워서 쉽게 만들 수 있습니다.
nKn

0

질문을 이해하지 못했습니다. 쉘에 내장 된 기능을 사용하지 않고 명령 행에서 종료 상태를 지정할 수있는 명령을 찾고있는 것 같습니다. 왜? (exit 120)작동하지 않는 쉘이 있습니까?

몇 가지 가능성이 있습니다.

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • 자신 만의 스크립트를 작성하십시오 exit "$1".

나는 단지 궁금합니다. bash -e내장 기능이 어떻게 작동 하는지 테스트하고 싶은 것 외에는 실질적인 이유가 없습니다 .
David Cowden

당신은 그걸로 완벽하게 잘 할 수 (exit 120)있습니다.
Scott

실제로, 나는 질문에서 언급 한 바와 같이. 그러나 그것은 문제의 요점이 아닙니다. (;
David Cowden

글쎄, 그것이 내 질문의 요점입니다. 나는 당신의 질문의 요점을 이해하지 못합니다. 그 동안 네 가지 답변을 들었습니다. 귀하의 답변은 무엇입니까?
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.