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 esintento(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 ungrep