Echo

echo 如何解析 $100?

  • November 24, 2018

我正在學習echo命令:

$ echo $100
00
$ echo $1

$

那麼為什麼echo解析$1為未定義的變數並在零之後列印而不是$100作為一個整體?我正在使用 Ubuntu 14.04。

位置參數, $1, $2, …,$9包含傳遞給目前 shell 或 shell 函式的命令行參數。該字元串$100將被解釋為$1後跟兩個零。這將是00如果$1未設置或為空。

在腳本中顯式設置前三個位置參數並對其進行測試:

set -- a b c

echo "$100 $200 $300"

這導致輸出

a00 b00 c00

由於超過 9 的位置參數需要使用 eg 來訪問,因此在後面的和“位置參數 10 或 100”${10}之間沒有歧義(因為沒有括號)。$1``00

如果您想列印文字 string $100,那麼您必須$從 shell 中轉義 ,或使用單引號:

echo \$100
echo '$100'

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