Необходимо написать сценарий, который выбирает один подкаталог в каталоге для его использования.
Я вижу это таким образом.
Это / SampleDir /, и в нем есть / SubDir1 /, / SubDir2 / и / SubDir3 /
Пользователь вводит местоположение каталога, программа выполняет поиск в нем и передает пользователю список подкаталогов в этом Директор,пользователь выбирает именно подкаталог, с которым он хочет работать, просто щелкните номер списка:
Код
echo "Сhoose Directory:\n"
read SOMEDIR
// #check nubmber of subdirs
echo "In directory you have multiple subdir's, which one do you want to use"
// #choose subdir
// #Any operation, like Remove SubDir
Выберите каталог:
ввод: / root / Documents / SampleDir /
В каталоге у вас есть несколько подкаталогов, которые вы хотите использовать:
1) SubDir1
2) SubDir2
3) SubDir3
Входные данные : 1
Большое спасибо
Я написал этот сценарий для выбора длинных имен подкаталогов, ввод которых занимает много времени.
Когда вы вызываете cdd
и существует более одного подкаталога, вам нужно выбрать один:
Если на этом экране вы нажмете кнопку OK , это эквивалентно :
cd Seven\ Mary\ Three
или:
cd "Seven Mary Three"
Когда вы вызываете cdd
и есть только один подкаталог, он автоматически меняется на него:
rick@alien:~/Music/Seven Mary Three$ cdd
rick@alien:~/Music/Seven Mary Three/American Standard$
Когда вы вызываете cdd
и нет суб-каталогах отображается ошибка:
rick@alien:~/Music/Seven Mary Three/American Standard$ cdd
No subdirectories
rick@alien:~/Music/Seven Mary Three/American Standard$
Вы можете поместить список каталогов в массив
mapfile -d '' -t dirs < <(printf '%s\0' */)
, а затем использовать конструкцию bash select
:
select d in "${dirs[@]}"; do echo "You chose: $d"; break; done
1) Desktop/ 3) dir/ 5) opt/ 7) somedir/ 9) subdir/
2) Documents/ 4) openssh-8.2p1/ 6) qgis_sample_data/ 8) src/
#? 5
You chose: opt/
Заменить echo
любым вы действительно хотите работать с выбранным каталогом.