Cat當我使用
當我使用 -e
參數回顯時會發生什麼?
如您所見,我創建
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 ';$
我該如何解釋呢?
來自男人的迴聲
-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
選項時,您正在列印