Как сравнить пользовательский ввод с массивом и выполнить команду? - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь написать скрипт для входа в разные системы, указав имя системы в качестве входных данных и сделав ее переменной для чтения. Однако, когда я пытаюсь сравнить его с определенным массивом, он выдает ошибку и заявляет, что команда не найдена.

Успешно использовал входные данные как переменные, но не смог их правильно сравнить с определенным массивом. Ниже приведен код, который я написал.

#!/bin/bash
cluster=("namico1c.mylabserver.com","namico2c.mylabserver.com")
echo "Please enter a Cluster Name to login: "
read clname
for item in ${cluster[@]};do
    echo ${item};
    if ["${clname}"="${item}"]; then
     ssh test@$clname
    else
     echo "Cluster is not correct"
    fi
done
[test@namico3c ~]$ ./test.sh
Please enter a Cluster Name to login: 
namico1c.mylabserver.com
namico1c.mylabserver.com,namico2c.mylabserver.com
./test.sh: line 7: [namico1c.mylabserver.com=namico1c.mylabserver.com,namico2c.mylabserver.com]: command not found
Cluster is not correct

1 Ответ

1 голос
/ 06 мая 2019

альтернатива:

#!/bin/bash
cluster=("namico1c.mylabserver.com" "namico2c.mylabserver.com")
select clname in "${cluster[@]}"; do
    ssh test@$clname
    break
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...