我看到這樣的代碼:
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
,這很混亂。
有沒有人有關於此的想法?
感謝,但是爲什麼'X = 100回聲$ X; echo $ x'什麼都不打印,而'x = 100; echo $ x'打印'100'? –
因爲您聲明x的值爲「100 echo $ x」 - 與「100」不同。在這種情況下,您在聲明x之前引用了x,因此爲空。分號告訴shell將命令視爲多個命令而不是一個命令。它將命令分開,就像將它們放在單獨的行中一樣。 – asimovwasright
@asimovwasright不,他*不*指定'100 echo $ x'爲'x'的值。他的第一個例子只有兩個單獨的'echo'命令,這兩個命令都是在'x'沒有值的環境中執行的。第一個前命令修飾符不會被'echo'使用。第二個例子有一個常規的賦值,在下一個命令打印該值之前將shell變量'x'設置爲100。 – chepner