在Bash中,为什么x = 100 echo $ x不打印任何内容?

Han*_*Sun 1 linux variables bash shell scope

我看到了这样的代码:

fqdn='computer1.daveeddy.com'

IFS=. read hostname domain tld <<< "$fqdn"
echo "$hostname is in $domain.$tld"
# => "computer1 is in daveeddy.com"
Run Code Online (Sandbox Code Playgroud)

我认为它有效,因为在第三行中将其IFS分配给.了。

x=100  echo $x
Run Code Online (Sandbox Code Playgroud)

但发现bash不能打印任何内容,而我希望它可以打印100..

而且,我发现x=100 echo $x; echo $xprint什么都没有,而x=100; echo $xprints 100却很混乱。

有人对此有想法吗?

che*_*ner 5

运行将其$x展开,并将结果作为参数传递给。在其环境中不使用的值。 echoechoechox

在第一个示例中,read使用IFS其环境中的value 分割通过here字符串接收到的字符串。