我在bash脚本中很新,并且无法弄清楚为什么这段代码不起作用(是的,我已经用Google搜索了)。
这是我的代码:
if [ $usertype = normal ]
then
commands[0]="hi" ; descriptions[0]="get greeted"
commands[1]="test" ; descriptions[1] = "test"
elif [ $usertype = hacker ]
commands[0]="hi" ; descriptions[0]="get greeted"
commands[1]="test" ; descriptions[1] = "test"
fi
alias fhelp='
for ((i=0; i<=${commands[@]}; i++))
do
printf '%s %s\n' "${commands[i]}" "${descriptions[i]}"
done'
有什么想法吗?
提前致谢。
答案 0 :(得分:1)
您不能在单引号内使用单引号。这样做,它将"'"
视为单引号的字符串并将它们连接起来。
alias fhelp='
for ((i=0; i<=${commands[@]}; i++))
do
printf '"'"'%s %s\n'"'"' "${commands[i]}" "${descriptions[i]}"
done'
使用${#commands[@]}
获取数组长度。
答案 1 :(得分:1)
elif [ $usertype = hacker ]
# missing then!
commands[0]="hi" ; descriptions[0]="get greeted"