我正在编写一个脚本,该脚本读取路径中的目录并提示用户选择该目录。到目前为止,该脚本如下所示:
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”thingy是一个检查变量$ choises是否是list_files数组成员的函数。这个脚本工作正常,输出是这样的:
1) first_folder
2) second_folder
3) yet_another_folder
用户可以通过输入相应的ID值(即“2”代表“second_folder”)来选择女巫文件夹。
我正在努力解决的问题是:有没有办法检查提供的答案是否是正确的数字 - 或者正确的文件名?如果你可以手动写入文件名,有没有办法在这个脚本中实现名称完成?
select的实际回复保存在变量$ REPLY中,我需要以某种方式检查$ choises和$ REPLY。我怀疑完成机制要复杂得多..
有没有人在这里有好的建议?如果你能帮助我掌握这些功能,那将是非常酷的!
答案 0 :(得分: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号和完整目录名都有效,但代码有点难看,并且没有名称完成。