2012-12-07 124 views
1

這裏是我的PHP代碼:傳遞變量對shell腳本

<?php 
$var1="hello.txt"; 
exec("expect /home/foo.sh $var1"); 
?> 

和我的shell腳本:

spawn su -s /bin/bash root -c "/usr/bin/gpg --output /home/$1.gpg --encrypt --recipient [email protected] /home/$1" 
expect "Password:" 
send "mypassword\r" 
expect "*complete*" 

它沒有得到我的變量

+0

您是否嘗試過用'EXEC( 「期望/home/foo.sh」。 $ var1);'? – Havelock

+0

是的也試過 –

回答

0

您必須分配你的參數變量如下:

Shell腳本:

set name [lrange $argv 0 0] 
send -- "Hello $name" 

終端命令:

expect hello.sh Benjamin 

結果:

Hello Benjamin 
+0

我用set var1 [lindex $ argv 0]但是它堆棧的值 –

+0

更新了我的答案。這是我撥打我的腳本時得到的結果 –

+0

lrange和lindex有什麼區別? –