popen 和 libssh 之间相同命令的不同结果

Different results for the same command between popen and libssh

当我用popen 运行这个命令时,不用担心。
我得到第一行信息和文件内容。

if [ -f /dir/file.txt ]; then echo $(if [ -w /dir/file.txt ]; then echo 'ok'; else echo 'nok';fi) $(stat -c '%A  %W %Y %s' /dir/file.txt);if [ $(stat -c%s /dir/file.txt) -gt 0 ]; then cat /dir/file.txt;fi;else echo 'false';fi

当我通过 libssh 运行 相同的命令时,我恢复 仅第一行
"file size" 字段 > 0.

你知道为什么吗?

我犯了大错
它必须 运行 一次一个命令。

在我的例子中,只有一个像这样的回声:

if [ -f /dir/file.txt ];then echo -e \"$(if [ -w /dir/file.txt ];then echo 'ok';else echo 'nok';fi) $(stat -c '%A  %W %Y %s' /dir/file.txt) \n $(if [ $(stat -c%s /dir/file.txt) -gt 0 ];then cat /dir/file.txt;fi;)\";else echo 'false';fi

不回显统计命令。