2016-09-28 3 views
1

저는 자동화 목적으로 다양한 리눅스 도구 (ssh 같은)를 호출하는 파이썬 코드 조각을 만들고 있습니다. 지금 나는 "반환 코드"처리를 조사하고있다.특정 0이 아닌 리턴 코드를 생성 하시겠습니까?

따라서 : 특정 0이 아닌 반환 코드를 제공하는 명령을 실행하는 간단한 방법을 찾고 있습니다. 예를 들어

echo "this is a testcommand, that should return with rc=5" 

과 같은 것입니다. 물론 위의 내용은 rc = 0으로 돌아옵니다.

내가 false이라고 부를 수 있다는 것을 알고 있지만, 이것은 항상 rc = 1로 반환됩니다. 나는 내가 통제 할 수있는 RC를 제공하는 것을 찾고있다.

편집 : 첫 번째 대답은 으로 끝납니다.; 하지만 그 문제 : 출구은 bash 함수입니다. 그래서, 파이썬 스크립트 내에서 실행하려고하면, "No such file or directory : exit"가 표시됩니다.

그래서, 난 사실 (분명히 한 것을 얻기 위해 몇 가지 간단한 스크립트를 작성할 수 있습니다 말해주는 몇 가지 "진"도구를 찾고 있어요, 난 그냥 찾고 있어요 이미와 함께 제공되는 거짓 비슷한이있는 경우 모든 Linux/Unix).

+0

어떻게 Python에서 명령을 실행 하시겠습니까? 'subprocess.Popen ('exit 5', shell = True'가 작동합니다.) – chepner

답변

5

서브 쉘에서 exit을 실행하십시오.

+0

bash에서 직접 실행하면 좋겠지 만 파이썬이 나를 위해 실행하는 명령이 필요합니다 (예 : * false *). 환영합니다 – GhostCat

+0

그 경우 값을 반환하기 위해 쉘을 호출하십시오. 'sh -c'exit 5 "' –

+0

'cmd_str ="bash -c 'exit 5' "에서' 그 일을 했어! 고마워! – GhostCat

2

이것은 정확히 사용자가 묻는 것이 아니지만 사용자 지정 rc은 exit 명령을 통해 얻을 수 있습니다. 이 메커니즘은 당신에게 서브 쉘을 절약

return_errorcode() 
{ 
    return $1 
} 

그래서, 내가 직접

(exit 5); echo $? 옵션에 비해
$ return_errorcode 5 
$ echo $? 
5 

같은 것을 사용할 수 있습니다

echo "this is a test command, that should return with " ;exit 5 
echo $? 
5 
2

나는 .bashrc에 정의 된이 기능을 가지고있다.

관련 문제