Bash 스크립트 if-else 조건 [닫기]

Bash 스크립트 if-else 조건 [닫기]

인터넷에서 특정 설치 프로그램을 다운로드하여 설치하고 이를 시작하는 데스크톱 파일을 생성하고 자동으로 시작하게 한 다음 설치 프로그램을 제거하는 bash 스크립트를 만들고 싶지만 스크립트에서 확인해야 할 몇 가지 사항이 있습니다. . 이러한 것들은 다음과 같습니다:

  • 설치 프로그램이 존재하는지 여부(없으면 다운로드하고 그렇지 않으면 실행 가능하게 만드세요)

  • 이전 설치가 존재합니까(존재하는 경우 제거 프로그램 실행 파일을 설정하고 이를 실행한 후 남은 모든 항목을 삭제하고, 그렇지 않으면 다음 단계로 이동)

  • apt list | grep gksu를 통해 gksu 패키지의 상태를 확인하고(설치되어 있으면 다음 단계로 이동하고, 그렇지 않으면 설치)

  • gksu example.run의 출력("GNOME_SUDO_PASS" 줄이 있으면 gksu example.run을 반복하고, 그렇지 않으면 다음 단계로 이동)

답변1

조건: 설치 프로그램 - ls . | grep example.runchmod +x pelda.run else wget 다운로드/링크/of/example.run

내가 이해하는 한, 위의 내용은 다음과 같이 번역될 수 있습니다.

if [ -f example.run ]
then
    chmod +x pelda.run
else
    wget download/link/of/example.run
fi

[ -f example.run ]은 이 명령을 사용하는 예입니다 test. 이름이 지정된 파일이 example.run존재하는 경우 테스트 명령은 반환 코드를 0(true를 의미)으로 설정합니다. 그렇지 않은 경우 반환 코드를 1(거짓을 의미)로 설정합니다.

조건: gksu - apt list --installed grep gksu if! 존재하는 경우 sudo apt install gksu else gksu pelda.run

위의 내용을 해석하면 다음과 같습니다.

if apt list --installed | grep gksu
then
    gksu pelda.run
else
    sudo apt install gksu
fi

grep여기서는 일치 항목이 발견되었는지 여부에 따라 반환 코드를 설정한다는 사실을 사용합니다 . apt list --installed설치된 패키지 목록을 반환합니다. 출력에 where 문자열이 포함되어 있으면 gksu반환 grep코드 0(true를 의미)이 설정되고 then해당 절이 실행됩니다. 존재하지 않는 경우 else해당 절이 실행됩니다.

관련 정보