Como descobrir se o sistema está usando o systemd e a versão específica simplificada no shell script? [duplicado]

0

Eu estou tentando identificar o sistema usando systemd e glibc versão 2.17 e, em seguida, executar um conjunto específico de código. Eu sou novo no shell script. Isto é o que eu saí com mas eu recebo erro

 ./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
    
por MikasaAckerman 27.09.2016 / 18:31

1 resposta

1

Como você usa o formulário de teste two [[ ]] , isso é (ou ksh), então:

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

  • use $( ) não '' no shell moderno
  • coloque espaços em torno de [[ e ]]
  • a sua tentativa de regex é melhor escrita com
por 27.09.2016 / 22:22