Как сделать выбор файла в скрипте оболочки 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 делает?

0 ответов

Другие вопросы по тегам