개발! 딱 깔끔하고 센스있게!

변수를 php 에서 bash 로 전달합니다 본문

개발 스크랩 메모/PHP

변수를 php 에서 bash 로 전달합니다

렉사이 2020. 12. 17. 23:53

php 에서 변수를 bash 스크립트에 전달할 수 없는 것 같아요.uaddress, upassword, 아무리 해도 비어 있습니다.

*********************************************************************************************

#!/bin/bash -x useraddress=$uaddress upassword=$upassword ssh -p 222 -6 2400:8900::f03c:91f:fe69:8af "/var/www/localhost/htdocs/postfixadmin/scripts/postfixadmin-cli mailbox add" $useraddress --password $upassword --password2 $upassword .ssh 

*************************************************************************************

[email protected]'; $addr = shell_exec('sudo /home/tpccmedia/cgi-bin/member_add_postfixadmin 2>&1'); echo $uaddress; echo $upassword; //$addr = shell_exec('ssh -p 222 -6 2400:8900::f03c:91f:fe69:8af /var/www/localhost/htdocs/postfixadmin/scripts/postfixadmin-cli mailbox add; echo $useraddress; --password; echo $upassword; --password2; echo $upassword; .ssh'); echo "
$addr
"; var_dump($addr); ?>

**********************************************************************************

[email protected] + useraddress= + upassword= + ssh -p 2222 -6 2400:8900::f03c:91ff:fe69:8aaf '/var/www/localhost/htdocs/postfixadmin/scripts/postfixadmin-cli mailbox add' --password --password2 .ssh Welcome to Postfixadmin-CLI v0.2 --------------------------------------------------------------- Path: /var/www/localhost/htdocs/postfixadmin --------------------------------------------------------------- Username: > string(404) "+ useraddress= + upassword= + ssh -p 2222 -6 2400:8900::f03c:91ff:fe69:8aaf '/var/www/localhost/htdocs/postfixadmin/scripts/postfixadmin-cli mailbox add' --password --password2 .ssh Welcome to Postfixadmin-CLI v0.2 --------------------------------------------------------------- Path: /var/www/localhost/htdocs/postfixadmin --------------------------------------------------------------- Username: > " 

대답

Sell 스크립트에 변수를 인자로 전달하고, shell 스크립트를 반드시 읽어야 합니다.

그래서 PHP 중:

$useraddress = escapeshellarg('[email protected]'); $upassword = escapeshellarg('test1234'); $addr = shell_exec("sudo /home/tpccmedia/cgi-bin/member_add_postfixadmin $useraddress $upassword 2>&1"); 

셸 스크립트에서:

useraddress=$1 upassword=$2 
Comments