首頁>Computer>source

我試圖編寫我的第一个bash函式,但遇到錯誤。

test() {
$1=/home;
}

我希望该函式將任何變數設置為/ home。

預期示例:

test TEST
echo $TEST
/home

示例得到:

test TEST
sh: TEST=/home: No such file or directory
echo TEST

您能告诉我如何達到預期的輸出以及為什麼失败吗?

最新回復
  • 5月前
    1 #

    通常,將變數用作變數名会产生令人惊讶的錯誤.您應该可以執行此操作,但是需要进行大量轉義。

    如果您仍然想這樣做,請使用 eval (內建Shell):

    test() {
    eval $1=/home
    }
    

    這是您的第一个功能,請允许我给您一些其他提示。

      test 通常是 /usr/bin/test .如果將此用作函式名稱,則需要呼叫 /usr/bin/test 以其全名.更好地使用 my_test 或類似的东西。

      以這種方式將變數用作左值("左值")非常少.很少有什至shellcheck也被它弄糊涂了。

  • windows 10:無法从克隆的SSD引匯
  • linux:流量增加-服務器被機器人探測了吗?