2011-11-26 86 views
2

我試圖將數據從PHP發送到bash腳本,然後將數據輸出回用戶。爲什麼我無法將「bean」發送到simple.sh並讓它回顯?將數據從PHP發送到bash腳本

最後,我的目標是讓我的web瀏覽器輸出「beans」。非常簡單,但我不能得到它的工作(完整noob)。

這裏是我的test.php:

<?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 

我在做什麼錯?

回答

2

你不執行你的shell腳本所以這裏是正確的代碼:

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

而且,你有什麼問題與您的shell腳本:

#!/bin/sh 
echo $1 

注意:命令READ是僅從鍵盤掃描字符串!如果您想通過參數傳遞它,請僅回顯這些$ 1,$ 2,$ 3,...這是您逐個輸入的參數數量。

0

你通過$ 1,$ 2,等進入外殼參數,所以試試這個:

var=$1 
echo $var 
0

「讀VAR」正試圖從標準輸入讀取一行,並把它放在一個變量。

您將$ var作爲命令行參數傳遞給腳本,而不是將它傳遞給標準輸入。

1

您的shell腳本不會執行您認爲它的操作。 read var將讀取用戶輸入,而不是命令行參數。將simple.sh更改爲更類似於:

#!/bin/bash 

echo $1 

該腳本假定您只希望將第一個參數傳遞給shell腳本。如果您需要更多,則必須適當修改腳本。我猜你最終會做一些與你的shell腳本完全不同的東西,並且命令行參數不是目標,所以這應該足夠你的測試。

相關問題