我找到了这个脚本:
在这里: Bash 从外部文件读取数组 我有一个名为test.txt的文件:
我得到了输出:
我得到了输出:
为什么会这样?我该如何在ksh中使其工作?(特别是ksh93)
#!/bin/bash
readvar () {
while read -r line
do
declare "$line"
done < "$1"
echo ${!2}
}
在这里: Bash 从外部文件读取数组 我有一个名为test.txt的文件:
_127_0_0_1=kees
如果我在bash中执行以下操作:
readvar ./test.txt _127_0_0_1
我得到了输出:
kees
然而如果我在ksh中做同样的事情, (由于Declare在ksh中不起作用,因此我用typeset替换了它。) :
#!/bin/ksh
readvar () {
while read -r line
do
typeset "$line"
done < "$1"
echo ${!2}
}
readvar ./test.txt _127_0_0_1
我得到了输出:
$ ./test.sh
./test.sh: syntax error at line 8: `2' unexpected Segmentation fault: 11
为什么会这样?我该如何在ksh中使其工作?(特别是ksh93)
$ ksh --version version sh (AT&T Research) 93u 2011-02-08
- azbc