Использование переменной here document в цикле while

Можно использовать следующие команды:

  • Чтобы очистить список пакетов:

    yum clean packages
    
  • Чтобы удалить метаданные для каждого включенного репозитория, используйте следующую команду:

    yum clean metadata
    
  • Чтобы удалить заголовки пакетов, используйте следующую команду:

    yum clean headers
    
  • Чтобы очистить всю кэшированную информацию, используйте следующую команду:

    yum clean all
    

Подробная информация найдена:Здесь

Я бы отключил демон обновления :PackageKit

  • Чтобы отключить автоматическое обновление через PackageKit, нам нужно остановить службу «packagekit» и отключить ее навсегда.

    systemctl stop packagekit
    systemctl mask packagekit
    
    Create symlink from /etc/systemd/system/packagekit.service to /dev/null.
    

Подробнее о том, как это сделать,:здесь

0
29.01.2020, 04:58
2 ответа

Это не устанавливает переменную fooв содержимое heredoc:

foo=<<EOF
one
two
three
EOF

Это присвоение переменной пустой строке с перенаправлением. Это может прояснить, что происходит:

foo=""  <<EOF
one
two
three
EOF

Но для этого вам не нужны здесь документы. Просто сделай:

foo="one
two
three"
6
28.04.2021, 23:25

По-видимому, вы хотите иметь встроенную переменную документа, а затем разделить ее на строки. Вы можете сделать это так:

lines=$(cat <<EOF
one two
three
four
EOF
)

IFS=$'\n'     # split on non-empty lines
set -o noglob # disable globbing as we only want the split part.

# use split+glob (leave ${lines} unquoted):
for line in ${lines}; do
   echo "${line}"
done

Обратите внимание, как я настроил IFS так, чтобы он не разбивался на строки. По умолчанию разделяется на слова с разделителями spc/tab/newline.

2
28.04.2021, 23:25

Теги

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