Почему mkdir не работает с подстановочными знаками?

Вот код awk (длинный и сложный, но у меня работает)

echo |awk -v a="$string1" -v b="$string2" '{split(a,a1,""); n=split(b,b1,"");a1[2]=b1[3];for (i=1;i<=n;i++) {printf a1[i]}}'
0
14.10.2019, 13:14
2 ответа

Шаблон расширяется только до существующих имен, а шаблон te*/testне соответствует ни одному существующему имени. Обратите внимание, что te*/testявляется одним полным шаблоном и что часть te*не сопоставляется отдельно от /test.

Поскольку шаблон не соответствует (и поскольку параметры оболочки nullglobи failglobне установлены ), он остается нераскрытым и передается mkdir, который жалуется, что не может создать подкаталог testв каталоге te*.

Команда cd te*выполнена успешно, поскольку шаблон te*соответствует имени существующего каталога test. Если бы было больше имен, соответствующих te*, вы могли бы получить сообщение об ошибке от cd.

2
28.01.2020, 02:29

Вы можете устранять проблемы такого рода с помощью соответствующих переключателей. Первый из них -v,который будет производить больше продукции, с которой вы можете ознакомиться. Другой — -p, который создаст родительские каталоги, если их нет. Игра с ними обоими должна дать вам хороший урок. Например.:

mkdir -pv _dirname_
0
28.01.2020, 02:29

Теги

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