Bash

如何讀取鍵盤輸入並將其分配給局部變數?

  • November 12, 2019

我有這個非常簡單的腳本:

#!/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

引用自:https://unix.stackexchange.com/questions/551762