我看到这样的代码:
fqdn='computer1.daveeddy.com'
IFS=. read hostname domain tld <<< "$fqdn"
echo "$hostname is in $domain.$tld"
# => "computer1 is in daveeddy.com"
我认为它有效,因为IFS
已分配给第三行的.
。所以我尝试了这个:
x=100 echo $x
但发现bash没有打印任何内容,而我预计会打印100
..
此外,我发现x=100 echo $x; echo $x
没有打印任何内容,x=100; echo $x
打印100
,这非常令人困惑。
有没有人有这方面的想法?
答案 0 :(得分:5)
{<1}}在 $x
运行之前展开,结果作为参数传递给echo
。 echo
在其环境中不使用echo
的值。
在第一个示例中,x
在其环境中使用read
的值来拆分它通过here字符串接收的字符串。
答案 1 :(得分:-1)
这是考虑它的另一种方式:
$ a="echo 100" $a
$ a="echo 100"
$ $a
100