我正在尝试构建一个脚本,它将从文件获取所有主机名并根据内核名称运行各种命令。
我首先要 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 手册页来查看是否有相同的选项。