1

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

Сначала я хочу подключиться к хосту по ssh, а после ввода команды uname -a хочу отправить определенный набор команд в зависимости от версии ОС, использующей регистр

Что я сделал до сих пор:

#!/usr/bin/ksh

for ssh_host in $(cat hostsFile)
do
    echo $ssh_host
    kernel=`ssh $ssh_host "uname -a"`
    echo $kernel

case $kernel in
        "Linux")
                echo "This is Linux"
                ;;

    "AIX")
            echo "This is AIX"
    ;;
    *)
            echo "Not sure what this is"
    ;;
esac
done

Я застрял, где я должен проверить, присутствует ли строка "Linux" в выводе uname -a из переменной $ kernel.

1 ответ1

1

Вам просто нужно сделать свои шаблоны менее точными: искать слово где-то в тексте

case $kernel in
    *Linux*) echo "This is Linux" ;;
    *AIX*)   echo "This is AIX"   ;;
    *)       echo "Not sure what this is: $kernel" ;;
esac

Кроме того, вы можете быть более конкретным, по крайней мере с GNU uname

$ uname -s
Linux

Вам нужно проверить страницу справки AIX uname, чтобы увидеть, есть ли там такая же опция.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .