Подстановочное расширение Bash (2)

Это - микросхема единой сети (Broadcom BCM5709); та микросхема имеет два порта, которые могут настраиваться независимо, избыточно, или объединяться в команду.

Это будет работать просто великолепно для Вашего приложения.

1
задан 21 August 2012 в 08:23
3 ответа

Он выполняет сопоставление с образцом для всего слова, а не только для части $ {path} * , поэтому, если $ path было "/", а $ dir было "/ subdirname ", он будет искать совпадения с / * / subdirname , который, по сути, ищет каталоги в /, содержащие подкаталоги с именем subdirname. Если вы хотите, чтобы он находил каталоги, которые еще не содержат / subdirname, вы должны оставить это вне шаблона и добавить его позже. Вот пример, в котором совпадения сохраняются в массиве, а затем добавляется подкаталог:

path="/"
dir="/subdirname"
matchedDirs=("$path"*)
echo "${matchedDirs[@]/%/$dir}"

Если окончательную конструкцию трудно разобрать, часть [@] означает «все элементы массива, каждый из которых обработан. отдельным словом ", а /% / $ dir означает" заменить конец (каждого элемента) на $ dir "(т. е.

1
ответ дан 3 December 2019 в 17:13

Change it to

dir=/Data sub=subfolder
echo $dir*/$sub

.

dir=/Data* sub=subfolder
echo $dir/$sub

would also work

0
ответ дан 3 December 2019 в 17:13

Поместите имена переменных в фигурных скобках, например:

echo ${path}*${dir}
4
ответ дан 3 December 2019 в 17:13

Теги

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