0

我正在编写一个脚本,该脚本读取路径中的目录并提示用户选择女巫目录。到目前为止的脚本如下所示:

select choises in ${list_files[@]}; do
  if CONTAINS_ELEMENT $choises "${list_files[@]}"; then
    break
  else
    echo "invalid choise (PS use the ID numbers)! Try again:"
  fi
done

“CONTAINS_ELEMENT” 是一个检查变量 $choises 是否是 list_files 数组成员的函数。该脚本运行良好,输出如下所示:

1) first_folder 
2) second_folder
3) yet_another_folder

并且用户可以通过输入相应的ID值(即“second_folder”为“2”)来选择witch文件夹。

我正在努力解决的是:有没有办法检查提供的答案是否是正确的数字 - 或 - 正确的文件名?如果你可以手动写入文件名,有没有办法在这个脚本中实现名称完成?

对 select 的实际回复保存在变量 $REPLY 中,我需要以某种方式检查 $choises 和 $REPLY。我怀疑完成机制要复杂得多..

有人在这里有好的建议吗?如果您能帮助我获得这些功能,那就太好了!

4

1 回答 1

0
select choises in ${list_files[@]}; do
  if CONTAINS_ELEMENT $choises "${list_files[@]}" || CONTAINS_ELEMENT $REPLY "${list_files[@]}"; then 
    break
  else
  echo "invalid choise (PS use the ID numbers)! Try again:"
  fi
done

这使得 ID 号和完整的目录名称都可以工作,但代码有点难看,并且没有名称完成。

于 2013-08-30T10:34:46.833 回答