Скрипт, который выбирает один подкаталог в каталоге

Необходимо написать сценарий, который выбирает один подкаталог в каталоге для его использования.

Я вижу это таким образом.

  1. Это / SampleDir /, и в нем есть / SubDir1 /, / SubDir2 / и / SubDir3 /

  2. Пользователь вводит местоположение каталога, программа выполняет поиск в нем и передает пользователю список подкаталогов в этом Директор,пользователь выбирает именно подкаталог, с которым он хочет работать, просто щелкните номер списка:

  3. Код

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
  1. То же самое в Терминале

Выберите каталог:

ввод: / root / Documents / SampleDir /

В каталоге у вас есть несколько подкаталогов, которые вы хотите использовать:

1) SubDir1

2) SubDir2

3) SubDir3

Входные данные : 1

Большое спасибо

1
задан 17 November 2020 в 14:51

2 ответа

Я написал этот сценарий для выбора длинных имен подкаталогов, ввод которых занимает много времени.

Использование

Когда вы вызываете cdd и существует более одного подкаталога, вам нужно выбрать один:

cdd.png

Если на этом экране вы нажмете кнопку 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$ 
0
ответ дан 3 January 2021 в 22:49

Вы можете поместить список каталогов в массив

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 любым вы действительно хотите работать с выбранным каталогом.

0
ответ дан 3 January 2021 в 22:49

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

Похожие вопросы: