我在通过 ssh2_exec 通过 php 传递以下命令时遇到问题,命令是
./prog cat <<EOF
a a a
b b
c
d d
EOF
问题是第一行'cat <<EOF'
,php 将“EOF”作为一个特殊的词,我希望'<<EOF'
pass 作为一个普通的字符串。
有什么可能的解决方案吗?
感谢您的建议
我在通过 ssh2_exec 通过 php 传递以下命令时遇到问题,命令是
./prog cat <<EOF
a a a
b b
c
d d
EOF
问题是第一行'cat <<EOF'
,php 将“EOF”作为一个特殊的词,我希望
我在通过 ssh2_exec 通过 php 传递以下命令时遇到问题,命令是
./prog cat <<EOF
a a a
b b
c
d d
EOF
问题是第一行'cat <<EOF'
,php 将“EOF”作为一个特殊的词,我希望'<<EOF'
pass 作为一个普通的字符串。
有什么可能的解决方案吗?
感谢您的建议
我不懂PHP,所以我会给出一些可能的解决方案。
只是不要使用EOF。
./prog cat <<WHATEVER
a a a
b b
c
d d
WHATEVER
不要使用 here-document,通过 printf 的管道提供标准输入。
printf 'a a a \nb b \nc \nd d \n' | ./prog cat
<?php
echo "a <<EOF b";
显示“ a <<EOF b
”。如果 PHP 使用 <
Idk ...也许这是 PECL 的 ssh2 扩展的问题。或者您在另一端使用的外壳可能存在问题。无论哪种情况,我都建议您使用phpseclib,一个纯 PHP SSH2 实现。如果是 PECL 扩展的问题,可以修复它,如果它是 shell 的问题,您可以启用日志记录并查看通过 SSH 连接到底发生了什么。
我不懂PHP,所以我会给出一些可能的解决方案。
只是不要使用EOF。
./prog cat <<WHATEVER
a a a
b b
c
d d
WHATEVER
不要使用 here-document,通过 printf 的管道提供标准输入。
printf 'a a a \nb b \nc \nd d \n' | ./prog cat