如何在 shell 脚本中查找系统是否正在使用 systemd 和 glib 特定版本?

如何在 shell 脚本中查找系统是否正在使用 systemd 和 glib 特定版本?

我正在尝试使用 systemd 和 glibc 版本 2.17 来识别系统,然后运行特定的代码集。这就是我得出的结果,但出现错误

 ./testing.sh: line 4: [[UNIT: command not found

代码:

#!/bin/sh
glib=`ldd --version | awk '/ldd/{print $NF}'`
ver=2.17
if [[`systemctl`=~-\.mount && $glib '==' $ver ]];then
echo "I have to execute certain specific stuff to glib ver 2.17"
fi

答案1

由于您使用了两个[[ ]]测试表格,所以这是(或 ksh),所以:

#!/bin/bash

glib=$(ldd --version | awk '/ldd/{print $NF}')

if [[ $glib == 2.17 ]] && systemctl | grep -q '\.mount'; then
  echo "I have to execute certain specific stuff to glib ver 2.17"
fi

笔记

  • 在现代 shell 中不使用$( )``
  • [[在和周围放置空间]]
  • 你的正则表达式尝试最好用

相关内容