У меня возникла та же проблема, когда я сегодня установил Debian 9.5 с графическим интерфейсом. У меня нет этой проблемы, когда я устанавливаю его без графического интерфейса. Наконец, я нашел решение по этой ссылке https://wiki.debian.org/resolv.conf. DHCP запустился автоматически, даже если я установил сеть вручную при его установке. Вы должны отключить DHCP, чтобы решить эту проблему.
echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
Если это не решит вашу проблему, я добавил новую строку в файл DHCP-клиента.
vi /etc/dhcp/dhclient.conf
prepend domain-name-servers 127.0.0.1;
Затем я удаляю пакеты resolvconf и network -manger.
apt-get --purge remove resolvconf network-manager
Наконец, если проблема не устранена, необходимо настроить файл resolv.conf, а затем заблокировать этот файл с помощью следующей команды. (Это не работает, если ваш resolv.conf является символической ссылкой.)
chattr +i /etc/resolv.conf
Предполагая, что у вас GNU basename
и все имена заканчиваются на.dmg
:
$ basename -s.dmg "${a[@]#*.}"
150
151
152
"${a[@]#*.}"
расширяется до каждого имени с удалением начального бита до первого символа точки включительно. Утилита GNU basename
может удалить суффикс из набора имен файлов с параметром -s
.
Результат может быть прочитан в новый массив, n
,
readarray -t n < <(basename -s.dmg "${a[@]#*.}")
Поскольку мы используем basename
, это также будет работать, даже если в именах файлов указан путь к каталогу:
$ a=(/some/path/List.{150..153}.dmg)
$ readarray -t n < <(basename -s.dmg "${a[@]#*.}")
$ printf '%s\n' "${n[@]}"
150
151
152
153
#! /bin/bash
a=(List.150.dmg List.151.dmg List.152.dmg)
for file in "${a[@]}"; do
number="${file#*.}"
number="${number%.*}"
echo "$number"
done