2017-10-06 8 views
2

나는 온라인을 많이 검색했지만이 문제에 대한 정확한 해결책을 찾지 못했습니다. 내 질문은 파이썬에서 사용자 정의 함수를 호출하고 싶습니다. 말, 내 .bashrc에파이썬에서 사용자 정의 된 bash 함수 호출

`

cpput2(){ 
    # 1 job name 
    # 2 hpss pat 
    # 3 filepath 
    bsub -N -n 1 -q hpss -W 24:00 -P CWWW0001 -J $1 hsi "cd $2; cput -R $3" 
} 

`

파이썬에서 호출 할 수있는 방법이 있나요에서 떠들썩한 기능을 작성했습니다? os.system은 bashrc에 넣어도이 함수를 찾을 수 없습니다.

+0

'. 파이썬 스크립트에서'bsub -N ...'을 실행해야한다면, 명시 적으로 호출하십시오. – chepner

+0

또는 원하는'bsub' 명령을 실행하는 스크립트를 만들고 그것을'PATH'에있는 디렉토리에 넣으십시오. – chepner

답변

0

bash에서 명령 옵션 -c을 통해 명령을 실행할 수 있습니다.

bash -c '. file.sh && cpput2 myjob myhpsspat mypath' 

참고 : 당신은 예를 들어, 첫 번째 점 명령을 사용하여 소스 파일을 포함해야 배쉬에서 함수를 사용할 수 있도록하려면이 file.sh의 포함하면 인해 및 연산자 (&&)에 함수에만 실행됩니다 성공적이었다.

당신은 os.system와 파이썬에서 함수를 호출 할 수 있습니다 :

다른 프로그램을위한 도서관의 역할을하지, 대화 형 쉘을 정의하기위한 것입니다 .bashrc`
os.system("bash -c '. file.sh && cpput2 myjob myhpsspat mypath'")