2011-11-26 2 views
2

PHP에서 bash 스크립트로 데이터를 보낸 다음 데이터를 다시 사용자에게 출력하려고합니다. simple.sh에 "beans"를 보내지 못하는 이유는 무엇입니까?PHP에서 bash 스크립트로 데이터 보내기

결국 내 목표는 웹 브라우저에서 "콩"을 출력하는 것입니다. 아주 간단하지만 제대로 작동하지 않습니다 (멍청한 놈).

다음
<?php 
echo "<pre>"; 
    $var = 'beans'; 
    exec("/var/www/html/dev/simple.sh $var", $output); 
    echo var_dump($output); 
echo "</pre>";  
?> 

내 simple.sh됩니다 :

read var 
echo $var 

내가 뭘 잘못하고 여기에

내 test.php입니까?

답변

2

올바른 코드 키보드에서만 문자열을 스캔 !! 인수로 전달하려는 경우 이러한 $ 1, $ 2, $ 3 ...을 하나씩 입력하십시오.

0

당신은 $ 1, $ 2 등을 통해 쉘 인수에 액세스하므로이 시도 :

var=$1 
echo $var 
0

표준 입력에서 라인을 읽기 위해 노력하고 변수에두고있다 "VAR을 읽기".

표준 입력에 연결하지 않고 $ var를 명령 줄 인수로 스크립트에 전달하고 있습니다.

1

셸 스크립트는 생각했던대로 작동하지 않습니다. read var은 명령 줄 인수가 아닌 사용자 입력을 읽습니다. simple.sh를 다음과 같이 변경하십시오.

#!/bin/bash 

echo $1 

이 스크립트는 셸 스크립트에 전달되는 첫 번째 인수 만 원한다고 가정합니다. 그 이상이 필요한 경우 스크립트를 적절하게 수정해야합니다. 필자는 쉘 스크립트를 사용하여 뭔가 다른 것을 시도 할 것이고 명령 행 매개 변수는 목표가 아니므로 테스트에 충분할 것입니다.

#!/bin/sh 
echo $1 

참고 : 명령 READ가 당신의 당신의 쉘 스크립트에 문제를 가지고, 또한

echo "<pre>"; 
    $var = 'beans'; 
    exec("sh /var/www/html/dev/simple.sh $var", $output); 
    echo var_dump($output); 
echo "</pre>"; 

: 당신은 너무 여기 쉘 스크립트를 실행하지 못했습니다