Ich versuche, das System mit systemd und glibc Version 2.17 zu identifizieren und dann einen bestimmten Codesatz auszuführen. Das ist das Ergebnis, aber ich erhalte die Fehlermeldung
./testing.sh: line 4: [[UNIT: command not found
CODE:
#!/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
Antwort1
Da Sie die beiden [[ ]]
Testformulare verwenden, ist diesSchlag(oder ksh), also:
#!/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
NOTIZ
- verwenden Sie
$( )
nicht `` in modernen Shell - Platziere Räume um
[[
und]]
- Ihr Regex-Versuch wird besser mit einemgrep