Ksh/Bash 脚本根据内核名称运行命令

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 手册页来查看是否有相同的选项。

相关内容