在代碼中更簡潔——為什么這樣作業:
X=5 eval "echo \$X"
輸出:5
但不是這個:
substitute_cmd='X=5 eval "echo \$X"'
$substitute_cmd
輸出:-bash: X=5: command not found
& 有什么好的解決方法嗎?
uj5u.com熱心網友回復:
eval
: 它有一個內置的解釋器,這意味著當您在 shell 中鍵入命令時,它的行為方式相同。$cmd
:它將擴展變數,并將此處的 cmd 視為可執行命令
在這里,X=5
不是一個可執行命令,它需要一個 shell 來解釋它,所以eval
對你來說可以,但對你來說$cmd
不行。您仍然需要另一個eval
外部來幫助您喜歡下一個:
$ substitute_cmd='X=5 eval "echo \$X"'
$ eval $substitute_cmd
5
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520116.html
標籤:重击
下一篇:Bash腳本生成換行符-為什么?