Есть ли способ работать, если команда в сценарии, который может соответствовать нескольким значениям, например, я продвинул бы сценарий к набору серверов, и каждый сервер только выполнит команду, если имя хоста серверов является одним из вводимых значений в команде или списке.
Я попробовал что-то вроде этого, но это, очевидно, не работало..
#!/bin/bash
if [ $HOSTNAME = server1.domain.com, server2.domain.com, server3.domain.com, server4.domain.com ]
then
/home/user/update_1
else
/home/user/update_2
fi
Было бы еще лучше, если у меня мог бы просто быть он проверка по сравнению с файлом со списком серверов
Вам нужно использовать || или синтаксис для этого
if [ "$HOSTNAME" == 'server1.domain.com' ] || [ "$HOSTNAME == 'server2.domain.com'"]
then
do something
else
dont' do something
fi
, если вы хотите проверить список файлов, вы можете сделать что-то вроде этого:
echo -e "computer1\ncomputer2\nmycomputer" > computerfile
hostname=mycomputer
if grep "$hostname" computerfile > /dev/null
then
echo true
else
echo false
fi
где hostname - это имя переменной, содержащей имя компьютера, а computerfile - это список компьютеров (1 name на строку).