我有这个非常简单的脚本:
#!/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