2016-12-11 5 views
1

나는 파이썬 세계에 다소 새로운 것이지만, 파이썬 스크립트 (리눅스 사용)에서 자동으로 생성 될 bash 파일을 실행하는 데 문제가있다.절대 경로를 나타내는 파이썬에서 .sh 파일을 실행

basedirectory="/home/pst2/Desktop/"; 
    *//Writing the .geo file* 
    file = open(basedirectory+nomdossier+"/"+nomfichier+".geo", 'w'); 
    file.write 
     ..blabla 
     ..blabla 
    file.close(); 
    //Writing the .sh file 
    file = open(basedirectory+nomdossier+"/"+nomfichier+".sh", 'w'); 
    file.write 
     ..blabla 
     ..blabla 
    file.close(); 

지금이 시점에서 내 스크립트가 모두와 함께 완벽하게 작동합니다 :

내가 텍스트 파일 .geo이 같은 내 데스크톱에서 어딘가에 디렉토리에 강타 파일의 .sh 모두를 만들 내 파이썬 스크립트를 설정 변수 위로 잘 작동하고 난에 "수동으로"실행될 때 기본적으로

 /home/pst2/Desktop/test/ 
    (and in here you will find the new test.geo and test.sh that were created via the python script) 

test.sh (변수를 파이썬 스크립트를 실행하고 입력 한 후 exemple에 대한)이 디렉토리에 자신을 발견 만들어 모두 해당 파일 설정 Bash test.sh (내가 무서울 때마다 ctory on 우분투)는 동일한 디렉토리에 test.msh라는 또 다른 파일을 만들 것입니다. 올바른 코딩을 찾지 못하고, 서브 프로세스 모듈을 사용하여 스크립트에서 새로 생성 된 test.sh 파일을 자동으로 실행합니다. 당신이에 작성 확실하지 무엇을 의 .sh 파일 에 절대 경로를 나타내는와 같이, 그렇게 할 수있는 방법이 (우리의 경우 base 디렉토리 + nomdossier + "/"+ nomfichier + "에서가. SH)?

답변

0

의 .sh 파일

그러나 시작하기 :.?!?

  1. 당신이 hashbang #/빈/쉬와의 .sh 파일을 시작
  2. 당신이 실행으로 파일을 modded하게 가지고 chmod를 + x

이 작업을 완료 한 후, 당신은 서브 프로세스 모듈을 사용하여 하위 프로세스에 대한 매뉴얼의 예처럼 뭔가를 할 수 있어야한다 : subprocess.call ([path_to_script + '/ script.sh'])

나는 수도 & 새로운 정보가 내 관심에 오면이 대답을 업데이트해야합니다.

+0

을 찾고 무엇을 할 수

os.system("command_line_with_args") 

믿을 예 내의 .sh를 실행하고 여기에 유일한 문제는 내가 배쉬 테스트를 수행하는 것이 다른 bash는 파일을 실행하는 방법을 잘 모릅니다이다 .sh 그리고 이후 파이썬 스크립트에서 자동으로하고 싶습니다. 맨 위에는 내 .sh와 같은 디렉토리에있을 때만 작동합니다 (bash test.sh). 새롭게 생성 된 .sh 파일과 새로 생성 된 디렉토리 파일을 실행할 수있는 방법을 찾지 못한다. ( –

+0

쉘 때문일 수 있습니다. 시스템의 경로를 제공 했으므로 어디에서 찾을 수 있는지 알 수 있습니다. 적절한 환경 변수 또는 전체/상대 경로로 제공 할 수 있습니다. 예 :/sbin/ls하지만 환경 변수에 sbin이 있기 때문에 ls를 쓸 수도 있습니다. –

0

os 모듈을 살펴보십시오.

나는 당신이

+0

내 문제는 .sh 파일의 새 경로를 고려하여 적절한 회선 코드를 작성하는 방법을 모른다는 것입니다. 나는 실행하고 싶다. 그리고 스크립팅의 세계에 새로운 이슈가 내 이슈의 진정한 어려움을 이해하기가 다소 어렵 기 때문에 ( –

+0

@TAAMALLAHYoussef [link] (https : //www.cyberciti.biz/faq/run-execute-sh-shell-script /) 당신이 찾고있는 명령은 'code'bash script-name-here.sh 'code' –

관련 문제