'-e' 매개변수를 에코하면 어떻게 되나요?

'-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 ';$

이것을 어떻게 설명해야 할까요?

답변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

관련 정보