我在控制器中有一个函数,我试图在其中传递一个变量形式的PHP来抨击SSH外观。
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"
]);
在这里,我正在尝试将密钥写入文本文件。当我写的时候,我得到的是文件里面的关键。不是预期的测试123。我做错了什么...
你需要将echo key
更改为echo '$key
,否则shell不会扩展关键变量。
此外,您可以完全摆脱关键变量,并通过仅使用$UNIQKEY
来避免一些讨厌的 shell 转义
还有一个问题,即您使用putenv并期望环境变量通过SSH连接。 我不相信环境变量是这样转移的。 相反,只需为 $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"
]);
更新$UNIQKEY
,转义 $ 以'$UNIQKEY
。