我碰到這個整齊的命令來檢查任何時區的時間在bash
TZ=US/Hawaii date
這確實一樣
export TZ=US/Hawaii
date
如何第一個命令的工作,而下面的命令不起作用?
test=6 echo $test
我碰到這個整齊的命令來檢查任何時區的時間在bash
TZ=US/Hawaii date
這確實一樣
export TZ=US/Hawaii
date
如何第一個命令的工作,而下面的命令不起作用?
test=6 echo $test
變量之前的行執行的命令膨脹。因此,在最後一個示例中,$test
在分配完成之前展開。
你可以得到你想要的效果:
test=6 bash -c 'echo $test'
這執行一個新的外殼工藝。由於引用了參數,因此變量不會被原始shell擴展,子shell會在設置了$test
的環境中擴展它。
第一次,date
的調用使用放置在其環境中的值TZ
。在第二個,$test
的擴展由執行的外殼echo
實際運行。 test
在echo
的環境中的值是無關緊要的。近似等效的工作將是
(test=6; echo $test)