Как сделать выбор файла в скрипте оболочки Ash, например `select`?
Цель состоит в том, чтобы выбрать резервную копию (читай: файл, тип = каталог) для восстановления из минимальной среды initramfs. Таким образом, занятая коробка пепла.
Arch Linux mkinitcpio busybox
1.27.2 ash
оболочке не хватает поддержки select
оператор, а также поддержка массивов.
Наилучший соответствующий код для выбора файла был найден по адресу http://lists.busybox.net/pipermail/busybox/2009-March/068533.html:
#!/bin/ash
url='http://www.busybox.net/downloads/snapshots/?F=0'
dst='/tmp'
echo -e "*** File list from ${url%/*} ***\n"
set -- `wget -q -O - $url | grep '^<li>' | cut -d\" -f2`
i=0
for file; do
i=$(($i + 1))
printf "%3d - %s\n" $i $file
done
echo ""
read -p "Select file # for download: " n
until test 0 -lt "$n" -a "$n" -le "$i" ; do
echo "Value is not in range (1 - $i) - try again!"
read -p "Select file # for download: " n
done
i=0
for file; do
i=$(($i + 1))
test "$n" -eq "$i" && break
done
echo ""
echo "File: $file"
Как превратить этот код в нечто, что "выбирает" одну папку, соответствующую шаблону расширения файлов 2[0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]-[0-2][0-9][0-5][0-9][0-5][0-9]
для одной конкретной папки, с выходом столбцов, таких как bash
ключевое слово shell select
делает?