我尝试在 bash v4 中创建关联数组。键应该是目录名称,值是 ID。问题是,某些目录包含特殊字符,例如括号,这会导致语法错误。
我的代码是:
for PAGE in ${MOIN_PAGES[@]}
do
CURRENT=`cat $MOIN_DIRECTORY/data/pages/$PAGE/current`
if [[ $CURRENT != cat* ]]
then
echo $CURRENT
MOIN_REVISIONS["$PAGE"]=$CURRENT
fi
done
Bash 告诉我,错误位于
行MOIN_REVISIONS["$PAGE"]=$CURRENT
MOIN_PAGES 包含类似“Abk(c3bc)rzungen”的字符串
有什么想法可以解决这个问题吗?
在 Bash 中,除非您知道自己在做什么,否则强烈建议始终使用双引号:
for PAGE in "${MOIN_PAGES[@]}"
do
CURRENT="$(cat "$MOIN_DIRECTORY"/data/pages/"$PAGE"/current)"
if [[ "$CURRENT" != cat* ]]
then
echo "$CURRENT"
MOIN_REVISIONS["$PAGE"]="$CURRENT"
fi
done
否则,您的条目将会混乱分词。