检查 zsh 中文件名中是否存在带下划线的文件

检查 zsh 中文件名中是否存在带下划线的文件

我正在编写一个非常简单的脚本,它将链接共享配置文件。由于某种原因,它的行为与我对名称中带有下划线的文件的预期不同。 _(下划线)在 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

相关内容