Ksh/Bash скрипт для запуска команд на основе имени ядра

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

Сначала я хочу 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 ответ

Решение

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

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, чтобы увидеть, есть ли там такая же опция.

Другие вопросы по тегам