我試圖在 bash 中做的是編寫一個腳本,foo
當我運行時$(foo)
,它會更改目錄並使用source
.內容foo
:
echo cd bar
echo "&&"
echo source baz
當我運行時$(foo)
,它將目錄更改為“bar”,但它不運行source baz
。有什麼辦法可以做到這一點嗎?
答案1
您需要eval
輸出:
eval $(foo)
否則,&&
(或任何其他類似的語言元素)將被視為用引號括起來: 的常規參數cd
。
$ echo $(foo)
cd bar && source baz
跳過前導echo
,這將cd
使用四個參數執行bar && source baz
,默默地刪除除第一個之外的所有參數。