0
遞增我有以下bash腳本(myscript.sh):
#!/bin/bash
$(echo $0)
現在:採購myscript.sh之前,$ SHLVL是2.採購完畢,是3.爲什麼? 回聲後不應該命令評估退出嗎?
謝謝!
遞增我有以下bash腳本(myscript.sh):
#!/bin/bash
$(echo $0)
現在:採購myscript.sh之前,$ SHLVL是2.採購完畢,是3.爲什麼? 回聲後不應該命令評估退出嗎?
謝謝!
當您在bash
中輸入腳本時,$0
將擴展爲bash
(或至少,shell的bash
的名稱已作爲起始名稱)。因此,$(echo $0)
首先擴展爲$(echo bash)
,計算結果爲bash
,然後將其確定爲要運行的命令的名稱,以便啓動新的外殼實例。您可以通過運行
echo foo; source myscript.sh; echo bar
先觀察築巢,你會看到字符串foo
印刷,那麼你會在新的shell提示。輸入exit
退出它,然後您會看到bar
最終完成您的原始命令列表打印。
你的問題不清楚。你怎麼打電話給你的腳本?請顯示您用來調用腳本的命令,以便我們看到輸入和輸出。 – EJK
另外,你的腳本的目的是什麼? '$ 0'是啓動腳本的命令。將該命令放在'$()'內部會導致該命令被執行,這將導致無限遞歸。 – EJK