시스템이 쉘 스크립트에서 systemd 및 glib 특정 버전을 사용하고 있는지 확인하는 방법은 무엇입니까?

시스템이 쉘 스크립트에서 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

메모

  • $( )현대 쉘에서는 ``를 사용 하지 마십시오
  • 주변에 공간을 배치 [[하고]]
  • 정규식 시도는 다음과 같이 작성하는 것이 좋습니다.

관련 정보