Вот мой скрипт для моих виртуальных машин.
#!/bin/bash
hosts=(
leap151 kali ubuntu omv
)
for hostname in "${hosts[@]}"; do
ssh -t root@"$hostname" << 'EOF'
if type -P zypper >/dev/null; then
command zypper ref && command zypper up
elif type -P apt-get >/dev/null; then
command apt-get update && command apt-get upgrade
else
echo 'Neither zypper nor apt found!' >&2
exit 127
fi
EOF
done
Использовать массив для хоста. Поскольку вы используете bash, встроенный type
подходит только для поиска исполняемого файла в вашей переменной PATH. См. help type
для получения дополнительной информации. Используйте опцию -t
в s sh, также используйте heredo c только то, что я сделал / сделал Выход 127 - это то, что должна завершить оболочка, если нет исполняемого файла, см. man 1p exit
.