2016-07-11 2 views
0

현재 매우 간단한 코드를 테스트 중입니다. 변수를 설정하고 그 변수를 bash 스크립트에 전달하여 사용하는 파이썬 스크립트를 작성하기 만하면됩니다.Errno 13 : bash 스크립트에 Python 변수 전달하기

파이썬 스크립트 :

from subprocess import check_call 
a = str(3) 
check_call(["/home/desktop/bash2pyTest/test.sh", a], shell=False) 

배쉬 스크립트 : 나는 다른 Q &을 읽고

#!/bin/bash 
echo "This number was sent from the py script: " $1 

이 주제와 관련된로서; 그러나 나는 개념적으로 이해할 수있는 해결책을 찾지 못하고있다. 따라서 위의 구문이 올바르지 않을 수 있습니다. 나는 몇 가지 다른 방법을 시도했다. 그러나 다음과 같은 오류 메시지가 계속 나타납니다.

Traceback (most recent call last): 
    File "/home/cassandra/desktop/bash2pyTest/callVar.py", line 3, in <module> 
    check_call(["/home/cassandra/desktop/bash2pyTest/test.sh", a], shell=False) 
    File "/usr/lib64/python2.7/subprocess.py", line 537, in check_call 
    retcode = call(*popenargs, **kwargs) 
    File "/usr/lib64/python2.7/subprocess.py", line 524, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__ 
errread, errwrite) 
    File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child 
    raise child_exception 
OSError: [Errno 13] Permission denied 

Process finished with exit code 1 

도움이 될만한 정보가 있습니다. 나는 혼란 스럽다.

답변

2

는 쉘에서

chmod +x /home/desktop/bash2pyTest/test.sh 

을보십시오. 실행할 파일이 실행 가능하지 않습니다.

또는 파이썬 스크립트에서 다른 옵션 :

check_call(["sh","/home/desktop/bash2pyTest/test.sh", a], shell=False) 
0

오류는 권한이 거부되었다고 말합니다. 코드를 테스트했는데 내 컴퓨터에서 제대로 작동합니다. 그러나 명령을 실행하는 사용자에게 test.sh 스크립트에 대한 충분한 권한이 있는지 확인해야합니다. 가장 중요한 것은 test.sh에 실행 권한 집합이 설정되어 있는지 확인하십시오. 그것은 종종 가장 쉽게 놓친 권한입니다.

관련 문제