2013-07-12 9 views
0

shell_exec() 명령을 사용하여 PHP에서 쉘 스크립트를 호출합니다.PHP에서 쉘 스크립트 호출하기 - 올바르게 작동하지 않음

args[0] = "tom" 
echo "hello" 
echo "${args[0]}" 

내가 터미널에서이 스크립트를 실행, 그것은 터미널에서 다음과 같은 출력을 제공합니다 : 쉘 스크립트의 간단한 버전입니다 다음 내가 shell_exec를 사용하여 PHP에서 이것을 호출 할 때 반면

hello 
tom 

() "hello"만 인쇄되고 "tom"은 인쇄되지 않습니다. 즉; php에서 스크립트를 호출 할 때 변수 할당이 작동하지 않습니다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?

도움을 주시면 감사하겠습니다.

답변

1

아마도 PHP는 Bash가 아니라 sh으로 스크립트를 실행합니다. 따라서 배열 (Bash 기능)은 셸에서 지원하지 않습니다.

해결 방법 : 배열을 사용하거나 스크립트에서 Bash를 명시 적으로 실행 취소하지 마십시오. (PHP가 맺음표를 이해한다면, 스크립트의 첫 줄에 정확한 맺음말을 사용하는 것으로 충분할 것입니다.)

+0

shell_exec ("path/to/file.sh")는 스크립트를 호출하는 방법입니다. 즉, 우리가 sh로 실행한다는 의미입니까? – user264953

+0

다시 말하지만, 적절한 새 빵을 추가하면 그것을 고칠 수 있습니다. – tripleee

0

먼저 args[0] = "tom"에 공백이 없어야합니다. args[0]="tom" 이어야합니다. (이 문제는 확실하지 않지만 시도해 볼 가치가 있습니다.)

코드 끝 부분에서 스크립트를 실행중인 셸을 확인하십시오.

echo "`ps -p $$`" 

이 경우 같은 쉘 여부를 확인하기 위해 단자와 PHP 스크립트에 모두를보십시오.