Bash
如何讀取鍵盤輸入並將其分配給局部變數?
我有這個非常簡單的腳本:
#!/bin/bash read local _test echo "_test: $_test"
這是輸出。
$ ./jltest.sh sdfsdfs _test:
我希望變數
_test
僅是本地的。這可能嗎?
local builtin 僅在函式內部起作用。您在腳本中設置的任何變數都已經是腳本的“本地”變數,除非您明確表示
export
它。因此,如果您刪除它,它將按預期工作:#!/bin/bash read _test echo "_test: $_test"
或者你可以把它變成一個函式:
my_read () { local _test read _test echo "_test: $_test" }
即使在函式內部,
local
內置函式也不會按照您編寫的方式工作:您的程式碼實際上是在設置一個字面命名的變數
local
:#!/bin/bash read local _test echo "_test: $_test" echo "local: $local"
$ ./script.sh sssss aaaaa _test: aaaaa local: sssss