echo 如何解析$100?

echo 如何解析$100?

我正在学习echo命令:

$ echo $100
00
$ echo $1

$

那么为什么echo解析$1为未定义变量并打印后面的零而不是$100整个呢?我使用的是 Ubuntu 14.04。

答案1

位置参数, $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}之间没有歧义(因为没有括号)。$100

如果您想打印文字字符串$100,那么您必须$从 shell 中转义 ,或使用单引号:

echo \$100
echo '$100'

相关内容