Shell

回顯操作包含一些不應包含的文本

  • December 8, 2018

在帶有作曲家的 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)來專門啟用點文件通配。

引用自:https://unix.stackexchange.com/questions/486659