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