在php

时间:2017-04-28 04:46:34

标签: php linux shell-exec

我在php中有linux sed命令,但它认为\ t为 TDL \ = c:\ tdl \ Main.tcp

中的标签
shell_exec("sudo sed -i '/User\ TDL=Yes/a TDL\=c\:\\tdl\\Main.tcp' /home/"$loginuser"/."$loginuser"/drive_c/Program\ Files/Tally.ERP9/tally.ini");
请问如何在php中解决

我的原始linux命令是

sudo sed -i '/User\ TDL=Yes/a TDL=c\:\\tdl\\Main.tcp' /home/"$loginuser"/."$loginuser"/drive_c/Program\ Files/Tally.ERP9/tally.ini

1 个答案:

答案 0 :(得分:0)

对于标签问题,请再使用一个反斜杠。 而不是\tdl使用\\tdl

但我认为你的命令也是错误的。请直接发布linux命令,以便我可以更正它。但是对于制表符问题,会添加一个额外的反斜杠,将您的\ t视为字符串而不是制表符。

无论如何,根据你的命令,请参阅以下内容,了解如何将ingore \ t视为标签

echo "sudo sed -i '/User\ TDL=Yes/a TDL=c\:\\tdl\Main.tcp' /home/your_loginuser/your_loginuser/drive_c/Program\ Files/Tally.ERP9/tally.ini";

在你的情况下:

$loginuser = "xyz";
echo "sudo sed -i '/User\ TDL=Yes/a TDL=c\:\\tdl\Main.tcp' /home/$loginuser/".$loginuser."/drive_c/Program\ Files/Tally.ERP9/tally.ini";