在ksh shell脚本中,有没有办法可以做到:
a[daemon1]=1
a[daemon2]=1
a[daemon3]=1
我想在守护程序名称上设置标志,检查标志是否为高然后执行某些操作 与awk / perl相似。
由于
答案 0 :(得分:1)
为什么不使用ksh数组?
$ x[a]=1
$ x[b]=ddd
$ echo ${x[*]}
1 ddd
$ echo ${x[a]}
1
答案 1 :(得分:1)
Korn shell支持关联数组:
typeset -A foo # create an associative array
bar=abc
baz=qux
foo[$bar]=def
foo[$baz]=ghi
for index in ${!foo[@]}
do
echo "Index: $index, Value: ${foo[$index]}"
done
结果:
Index: abc, Value: def
Index: qux, Value: ghi
答案 2 :(得分:0)
为什么不使用 a_daemon1 等名称?
您可能会查看的关联数组的符合标准的代码:
varcmd()
{
eval $(echo $*|tr -d "./;")
}
varcmd test '$'$fn$oldrev
if [ $? -eq 0 ]; then
varcmd $fn$rev='$'$fn$oldrev
varcmd unset $fn$oldrev
else
varcmd $fn$rev=$oldrev
fi