¿Cómo saber si el sistema está utilizando una versión específica de systemd y simplista en el script de shell?

¿Cómo saber si el sistema está utilizando una versión específica de systemd y simplista en el script de shell?

Estoy intentando identificar el sistema usando systemd y glibc versión 2.17 y luego ejecutar un conjunto de código específico. Esto es lo que me salió pero me sale error

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

CÓDIGO:

#!/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

Respuesta1

Dado que utiliza el [[ ]]formulario de dos pruebas, esto es(o ksh), entonces:

#!/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

NOTA

  • no usar $( )`` en el shell moderno
  • colocar espacios alrededor [[y]]
  • tu intento de expresión regular está mejor escrito con un

información relacionada