![如何读取键盘输入并将其分配给局部变量?](https://linux22.com/image/163831/%E5%A6%82%E4%BD%95%E8%AF%BB%E5%8F%96%E9%94%AE%E7%9B%98%E8%BE%93%E5%85%A5%E5%B9%B6%E5%B0%86%E5%85%B6%E5%88%86%E9%85%8D%E7%BB%99%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%EF%BC%9F.png)
我有这个非常简单的脚本:
#!/bin/bash
read local _test
echo "_test: $_test"
这是输出。
$ ./jltest.sh
sdfsdfs
_test:
我希望该变量_test
只是本地变量。这可能吗?
答案1
本地内置函数仅在函数内部起作用。除非您明确指出,否则您在脚本中设置的任何变量都已经是脚本的“本地”变量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