我正在编写一个非常简单的脚本,它将链接共享配置文件。由于某种原因,它的行为与我对名称中带有下划线的文件的预期不同。 _(下划线)在 zsh 中是否有特殊含义?
提到的脚本现在是这样的:
#!/bin/zsh
STATIC_CONFIG_PATH="/opt/apps/config"
STATIC_CONFIG_FILES=("couchdb.yml" "database.yml" "elasticsearch.yml" "slurm_api.yml")
cd $1/config
ELEMENTS=${#STATIC_CONFIG_FILES[@]}
for (( i=0;i<$ELEMENTS;i++)); do
if [ ! -L ${STATIC_CONFIG_FILES[${i}]} ]; then
echo 'Linking '$STATIC_CONFIG_PATH'/'${STATIC_CONFIG_FILES[${i}]}
ln -s $STATIC_CONFIG_PATH'/'${STATIC_CONFIG_FILES[${i}]}
fi
done
答案1
没关系。没有下划线之谜
slurm_api.yml
是${STATIC_CONFIG_FILES[4]}
这样for
应该像
for (( i=1;i<=$ELEMENTS;i++)); do