Я нахожусь в середине написания сценария bash, у меня есть несколько подпапок в определенном каталоге, я хочу перечислить имена подпапок и прочитайте результаты в массив, исключающий определенную одну папку с именем «cmmdm» из результатов. Как только я прочитал имена в массиве, я хочу сгенерировать меню с каждым именем подменю в качестве выбора, который затем буду выполнять функцию в данной подпапке в зависимости от того, какой пользователь делает.bash перечислить все подкаталоги в папке, записать их в массив для использования в меню
EDIT: жаль, следовало бы добавить свой исходный код:
#!/bin/bash
# - create array
declare -a CDARRAY
# - set 0 to exit in prep for menu
CDARRAY[0]=exit
# - create a counter to use in while loop
count=1
# - while loop to itterate through folder and add each folder except cmmdm into array
ls -d /home/nginx/domains/* | {
while read CMMDOMAIN ; do
if [ $CMMDOMAIN != "/home/nginx/domains/cmmdm" ]
then
$CDARRAY[$count]=$CMMDOMAIN
echo $CDARRAY[$count]
count=$[count + 1]
fi
done
}
Это пройти через папку и не игнорировать «cmmdm» однако мой код, чтобы добавить переменный CMMDOMAIN в массиве является неправильным. Я никогда не писал сценарий в bash раньше, поэтому я думаю, что, вероятно, я получил синтаксис неправильно или отсутствует некоторые фигурные скобки или что-то.
достаточно просто. Почему бы вам не попробовать? Вы где-то застряли? – SMA
В Bash, используя [расширенные глобусы] (http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching): 'shopt -s extglob nullglob; array = (dir /! (cmmdm) /) '. –
Здравствуйте, извините, я добавил свой код, чтобы увидеть, где im stuck –