이 튜토리얼에서는 Bashifstatement 의 기본 사항을 안내하고 쉘 스크립트에서 사용하는 방법을 보여줍니다.의사 결정은 컴퓨터 프로그래밍의 가장 근본적인 개념 중 하나입니다. 다음과 같은 다른 어떤 프로그래밍 언어,if,if..else,if..elif..else고 중첩된if제표에서 사용할 수 있는 코드를 실행하에 따라 특정 조건입니다.,

if 문#

Bashif조건문은 다른 형식을 가질 수 있습니다. 가장 기본적인if문의 형식은 아래와 같습니다:

if TEST-COMMANDthen STATEMENTSfi

if문을 시작으로는if키워드에 의해 따른 조건부현 및then키워드를 사용합니다. 명령문은fi키워드로 끝납니다.,

TEST-COMMANDTrue로 평가되면STATEMENTS가 실행됩니다. 는 경우에는TEST-COMMANDFalse아무 일도 일어나는STATEMENTS무시됩니다.일반적으로 코드를 항상 들여 쓰고 빈 줄이있는 코드 블록을 분리하는 것이 좋습니다. 대부분의 사람들은 4 공간 또는 2 공간 들여 쓰기를 사용하기로 선택합니다. 들여 쓰기와 빈 줄은 코드를보다 읽기 쉽고 체계적으로 만듭니다.,

살펴보자는 다음 예제 스크립트가 되는지 확인하기 위해 주어진 숫자보다 큰 10:

#!/bin/bashecho -n "Enter a number: "read VARif ]then echo "The variable is greater than 10."fi

코드를 저장한 파일에서 실행하는 명령:

bash test.sh

스크립트를 입력하라는 메시지를 표시합니다 숫자입니다. 는 경우,예를 들어,당신이 입력 15,test명령을 평가하는true기 때문에 15 보다 큰가 10,그리고echo명령 안에then절 실행됩니다.

The variable is greater than 10.

if..,다른 문#

Bashif..else문의 형식은 아래와 같습니다:

if TEST-COMMANDthen STATEMENTS1else STATEMENTS2fi

경우에는TEST-COMMAND을 평가하는True, STATEMENTS1실행됩니다. 그렇지 않으면TEST-COMMANDFalse를 반환하면STATEMENTS2가 실행됩니다. 문에else절을 하나만 가질 수 있습니다.,

자를 추가else절 이전 스크립트 예:

실행할 경우 코드 번호를 입력하면,스크립트 인쇄는 다른 메시지 기반하는지 여부에 숫자가 많거나 적게/10.

경우..엘리프..다른 문#

Bashif..elif..else문의 형식은 아래와 같습니다:

if TEST-COMMAND1then STATEMENTS1elif TEST-COMMAND2then STATEMENTS2else STATEMENTS3fi

경우에는TEST-COMMAND1을 평가하는True, STATEMENTS1실행됩니다., TEST-COMMAND2True로 평가되면STATEMENTS2가 실행됩니다. 테스트 명령 중 어느 것도True로 평가되지 않으면STATEMENTS2가 실행됩니다.

문에elif절을 하나 이상 가질 수 있습니다. else절은 선택 사항입니다.

조건은 순차적으로 평가됩니다., 한 번씩 상태를 반환하는True나머지 조건이 수행되지 않고 제어 프로그램의 끝으로 이동if문입니다.

자를 추가elif절 이전 스크립트:

중첩된 경우 문#

강타할 수 있을지if문 안에if문입니다. 할 수 있는 장소는 여러if문 다른if문입니다.,다음 스크립트는 세 개의 숫자를 입력하라는 메시지를 표시하고 세 개의 숫자 중에서 가장 큰 숫자를 인쇄합니다.

는 방법은 다음과 같습니다:출력은 다음과 같습니다.

Enter the first number: 4Enter the second number: 7Enter the third number: 27 is the largest number.
일반적으로,그것은 더 효율적으로 사용하는case문을 대신 중첩된if문입니다.

여러 조건#

논리ORAND연산자를 사용할 수 있도록 여러 조건에서if문입니다.,

다음은 세 개의 숫자 중에서 가장 큰 숫자를 인쇄하는 스크립트의 또 다른 버전입니다. 이 버전에서 대신의 중첩된if문,우리가 사용하여 논리AND(&&)연산자입니다.

테스트 연산자#

에 Bashtest명령은 다음 중 하나 구문 형식:

test EXPRESSION]

스크립트를 만들 휴대용,선호를 사용하는 오래 된 시험[명령에 사용할 수 있는 모든 POSIX 합니다., 새로운 업그레이드 버전의test명령[[(두 부류)이에서 지원되는 대부분의 현대적인 시스템을 사용하여 Bash,Zsh,Ksh 및 기본적으로 쉘입니다.

를 부정하는 테스트는 표현을 사용합 논리NOT(!)연산자입니다. 문자열을 비교할 때 항상 작은 따옴표 또는 큰 따옴표를 사용하여 단어 분할 및 전역 문제를 피하십시오.,

아래는 가장 일반적으로 사용되는 사업자:

  • -nVAR경우의 길이VAR다.
  • -zVARVAR가 비어있는 경우 True 입니다.
  • STRING1 = STRING2STRING1STRING2가 같으면 True 입니다.
  • STRING1 != STRING2-True ifSTRING1andSTRING2는 동일하지 않습니다.,
  • INTEGER1 -eq INTEGER2 – True if INTEGER1 and INTEGER2 are equal.
  • INTEGER1 -gt INTEGER2 – True if INTEGER1 is greater than INTEGER2.
  • INTEGER1 -lt INTEGER2 – True if INTEGER1 is less than INTEGER2.
  • INTEGER1 -ge INTEGER2 – True if INTEGER1 is equal or greater than INTEGER2.
  • INTEGER1 -le INTEGER2 – True if INTEGER1 is equal or less than INTEGER2.,
  • -h FILE – True if the FILE exists and is a symbolic link.
  • -r FILE – True if the FILE exists and is readable.
  • -w FILE – True if the FILE exists and is writable.
  • -x FILE – True if the FILE exists and is executable.,
  • -dFILE경우FILE존재하고 디렉토리에 있습니다.
  • -eFILE경우FILE존재하는 파일 유형에 관계없이(노드,directory,socket,etc.).
  • -fFILE경우FILE이 존재하고 일반 파일(디렉토리가 아닌 또는 장치).,

결론#

if,if..elseif..elif..else문을 제어할 수 있의 흐름을 강타 스크립트 실행을 평가하여 주어진 조건입니다.