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