Shell
回顯操作包含一些不應包含的文本
在帶有作曲家的 WSL Ubuntu 16.04 (Xenial) 上,我執行了:
echo 2 * 3 > 5 is a valid inequality
它產生了一個名為 的文件
5
,其內容為:2 composer-setup.php 3 是一個有效的不等式
我不知道為什麼這也
echo
包括文本composer-setup.php
;它應該包含除了 5(文件名)之外的左右所有內容,因為echo
可以將單個文本流作為其用於重定向的文件名(據我所知,不允許空格,因此5
命名)。為什麼會
composer-setup.php
出現在 2 和 3 之間?
您已經執行了一個命令行,其中包含兩個 shell 特殊字元:
*
和>
. 你看到了什麼>
;the*
是一個萬用字元/萬用字元,用於獲取目前目錄中的每個文件。您在目前目錄中有一個名為 composer-setup.php 的文件。引用你的命令行;如果文本中沒有單引號,則單引號有效:
echo '2 * 3 > 5 is a valid inequality'
1:每個不以句點開頭的文件(或目錄、套接字等),除非您設置了一個 shell 選項(例如 dotglob)來專門啟用點文件通配。