Ближе всего к официальной документации по пространствам имен справочная страница namespaces(7)
и связанные с ней страницы. Они поддерживаются разработчиками ядра.
Лучшим введением в использование контейнерами пространств имен, которое я знаю, является презентация Мэтта Тернера «Istio — точка зрения пакета» (, которая также существует в виде более продолжительного семинара ).
Серия статей LWN о пространствах имен также является хорошим введением (и не только ).
Это объясняет, что происходит:
#!/bin/bash
IFS='-'
var='a-b-c.pdf'
echo $var
echo "$var"
Ваш echo ${*%.pdf}.pdf
действительно создает нужную строку, но из-за отсутствующих кавычек разбиение слов действует на -
.
Или это:
[[ ${*%.pdf}.pdf =~ ' ' ]]
+ [[ a-b-c.pdf =~ ]]
echo $?
+ echo 1
1
В [[ ]]
нет разделения слов, а set -vx
/ bash -vx
показывает, что расширение не содержит пробелов.