Выполнение Centos, если - затем управляют с несколькими позволенными значениями

Есть ли способ работать, если команда в сценарии, который может соответствовать нескольким значениям, например, я продвинул бы сценарий к набору серверов, и каждый сервер только выполнит команду, если имя хоста серверов является одним из вводимых значений в команде или списке.

Я попробовал что-то вроде этого, но это, очевидно, не работало..

#!/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

Было бы еще лучше, если у меня мог бы просто быть он проверка по сравнению с файлом со списком серверов

-1
задан 19 March 2015 в 20:52
1 ответ

Вам нужно использовать || или синтаксис для этого

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 на строку).

0
ответ дан 5 December 2019 в 20:36

Теги

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