Не удалось понять, как инициализируются переменные debconf в конфигурации preseed

В bash :Сохраняет порядок чтения. Читает несколько строк в файле. Возвращает одну строку.

 unset d
 while read r; do
  [ "$d" ] || d=${r/ */}
  for s in $r; do
    for s2 in $d; do
      if [ "$s" = $s2 ]; then
        s=
        break
      fi
    done
    d="$d $s"
  done
done < file
echo ${d}
unset d r s s2

Скрипт лучше

echo '
#!/bin/bash

if [ $# = 0 ]; then
  echo "${0##*/} <filepath>" >&2
  exit
elif [ ! -f $1 ]; then
  echo " Error : $1 is not a file." >&2
  exit 1
fi

while read r; do
  [ "$d" ] || d=${r/ */}
  for s in $r; do
    for s2 in $d; do
      if [ "$s" = $s2 ]; then
        s=
        break
      fi
    done
    d="$d $s"
  done
done < $1
echo ${d}
' > ~/uniq-word

Для использования:

bash ~/uniq-word <filepath>
1
27.08.2020, 11:25
1 ответ

Предустановка сохраняет определенные переменные в соответствующей debconfбазе данных; установщик для собственных переменных d-i-, системный (в/var/cache/debconf)для остальных. Таким образом, все переменные base-configсохраняются в базе данных системы debconf.

db_get, который предоставляется /usr/share/debconf/confmodule, извлекает значение именованной переменной из базы данных debconfи сохраняет его в переменной RET. Так

db_get test/ubuntu/release
export RELEASE="$RET"

извлекает значение test/ubuntu/release,и сохраняет его в переменной окружения RELEASE.

См. страницу предварительной настройки в вики Debian для получения подробной информации о предварительной настройке и страницу debconfвики Debian для получения подробной информации о debconf.

1
18.03.2021, 23:09

Теги

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