다른 프로세스 (나는 subprocess.Popen
을 사용합니다)를 실행해야하는 Python 프로그램이 있습니다. 나는이 실행이 다음은 쉘 명령 프롬프트에서 사용자가 입력 한 것처럼 행동해야합니다어떤 쉘이 실행 중인지 확실하게 확인하십시오.
$ source path/to/some_file
$ ./some_program
은 내가 shell=True
사용할 것으로 기대하고 명령의 형태는 첫 번째 실행 source
에 체인 다음 프로그램을 실행합니다. 그러나, 나는 다음과 같은 문제에 직면하고있다 :
내 파이썬 프로그램을 실행 쉘은 bash
, sh
, tcsh
(또는 어쩌면 csh
의 다른 맛)이 될 수 있습니다. 어떤 쉘이 실행되고 있는지에 따라 다른 some_file
을 소스 화해야합니다. 이것을 결정할 방법이 있습니까? 파이썬에서 또는 Popen(..., shell=True)
내부에서 뭔가를 실행하여 둘 다 할 수 있습니다.
다른 셸에서 다른 출력을 얻기 위해 일종의 "셸 다단계"를 작성하려고했지만 내 셸 기술 (특히 csh에서)은 그러한 작업에 맞지 않습니다. 어떤 옵션이 있습니까?
[실행 가능] (http://docs.python.org/2/library/subprocess.html#subprocess.Popen) 인수를 사용하여 특정 셸을 강제로 'shell = True'로 설정할 수 있습니다. –
유닉스에서 사용 된 쉘은 사용자가 실제로 사용하고있는 쉘과 관계없이/bin/sh를 기본값으로 사용합니다. – Cairnarvon
@Cairnarvon, 예,하지만/bin/sh는 다른 리눅스에서 다른 것들과 심볼릭 링크됩니다. –