在Laravel5.2中将变量从PHP传递到bash
我在controller中有一个函数,我试图在SSH facade中将一个变量形式的PHP传递给bash在Laravel5.2中将变量从PHP传递到bash,php,bash,laravel-5.2,Php,Bash,Laravel 5.2,我在controller中有一个函数,我试图在SSH facade中将一个变量形式的PHP传递给bash putenv("UNIQKEY=test123"); SSH::into('production')->run([ "if [ -d 'public_html' ]; then cd public_html/ touch laber.txt
putenv("UNIQKEY=test123");
SSH::into('production')->run([
"if [ -d 'public_html' ]; then
cd public_html/
touch laber.txt
key=$UNIQKEY
echo key >> laber.txt
fi"
]);
在这里,我试图为文本文件编写一个密钥。当我写的时候,我得到的是文件中的密钥。不是预期的test123。
我做错了什么…更新
$UNIQKEY
,转义$to\$UNIQKEY
您需要将echo key
更改为echo\$key
,否则shell不会扩展key变量
此外,只需使用$UNIQKEY
还有另一个问题,即使用putenv并希望环境变量通过SSH连接。我不相信env VAR是这样转移的。相反,只需为$UNIQKEY设置一个PHP变量,并在shell脚本中插入它
$UNIQKEY='test123';
SSH::into('production')->run([
"if [ -d 'public_html' ]; then
cd public_html/
touch laber.txt
echo $UNIQKEY >> laber.txt
fi"
]);
$1
从哪里来?@edhurtig我已经更新了这个问题。它是putenv中的变量UNIQKEY