1
我想输出一个包含文件名的数组,并让用户选择要处理的文件。Bash:按用户输入获取数组值
目前,我有以下几点:
patches=($(ls $WORKING_DIR/PATCH_*))
echo "Select available Patch to apply"
for i in "${!patches[@]}"; do
echo "$i"":" "${patches[$i]}"
done
echo "Line Number, followed by [ENTER]:"
read seleted_patch
echo "Patch to install:" "${patches[$selected_patch]}"
但_Patch
到Install_
只是输出补丁数组的第一个值。 如何获取用户在命令行中输入的数组值?
Omg。失败。谢谢! 为什么它输出第一个值作为默认值? – develth
这是一个很好的问题 - 我对bash数组的复杂程度不够熟悉 - 我通常认为,如果您使用了这种高级shell脚本功能,那么使用真正的编程语言可能会更好。我猜想一个未定义的变量(代码中的'$ selected_patch')以某种方式引用数组中的0位置,但我不知道为什么。 –
由于错字'$ selected_patch'是空的,'$ {patches []}'与'$ {patches [0]}'具有相同的含义' – ULick