Я пытаюсь написать простой bash-скрипт для установки пакетов с использованием zypper.
Скрипт должен считывать имена пакетов zypper построчно из файла packages.txt, помещать их в массив и устанавливать. .
Единственная проблема заключается в том, что хотя он правильно считывает имена пакетов (строки) из файла, он не передает их в команду должным образом.
Основной скрипт bash:
#!/bin/bash
#Force exit on ERR occurence
set -e
#Error handler to call on ERR occurence
error_handler(){
echo "An error occured! Error code: $?"
}
trap "error_handler" ERR
#Function for retrieving package names as strings and invoking their installation using zypper
install_packages(){
packages=()
index=1
#refresh repos
echo -n "["$index"] Refreshing zypper repositories: "
zypper -n refresh > /dev/null 2>&1
echo 'OK'
#read package names from file
while IFS= read -r line || [[ -n "$line" ]]; do
packages+=("$line")
done < "$1"
#loop through packages() array and install them
for line in "${packages[@]}"; do
zypper -n install "$line"
done
}
install_packages "./packages.txt"
Содержимое «файла packages.txt»:
docker
docker-compose
Результаты запуска скрипта:
[1] Refreshing zypper repositories: OK
Loading repository data...
Reading installed packages...
' not found in package names. Trying capabilities.
' found.der of 'docker
Подробнее здесь: https://stackoverflow.com/questions/787 ... ash-script
Передайте простую строку в качестве аргумента команды в сценарии bash [дубликат] ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создание журнала запросов/ответов команды Curl в сценарии оболочки (bash)
Anonymous » » в форуме Linux - 0 Ответы
- 64 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Передайте путь в стиле Windows к Python в качестве аргумента в пакетном файле.
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-