반응형

리눅스 명령어 연결: ;, &&, || 사용법

리눅스에서는 여러 명령어를 한 줄로 작성할 수 있으며, 이를 연결할 때 주로 ;, &&, || 연산자를 사용합니다.

하지만 각 연산자는 사용 방법에 차이가 있으며, 어떤 상황에서 어떻게 동작하는지를 이해하는 것이 중요합니다.

이번 글에서는 이 세 가지 명령어 연결 방법에 대해 자세히 알아보겠습니다.


1. ; (세미콜론)

세미콜론은 여러 명령어를 순차적으로 실행할 때 사용합니다. 앞의 명령어의 성공 여부와 상관없이 나열된 명령어들이 차례대로 실행됩니다.

  • 사용 예시:
cd /abc; ls
  • 이 명령어는 먼저 /abc 디렉토리로 이동한 뒤, 그 디렉토리에서 ls 명령어를 실행합니다.
    /abc로 이동에 실패하더라도, ls 명령어는 실행됩니다.
     

2. && (앤퍼샌드)

&&는 앞의 명령어가 성공했을 때만 뒤의 명령어를 실행합니다. 즉, 앞의 명령어가 성공해야만 뒤의 명령어가 동작합니다.

  • 사용 예시:
cd /etc && ls
  • 위 명령어는 /etc 디렉토리로 이동한 뒤, 이동이 성공하면 ls 명령어가 실행됩니다.
    만약 /etc로 이동하는 것이 실패했다면, ls 명령어는 실행되지 않습니다.
     

3. || (논리 OR)

||는 앞의 명령어가 실패했을 때만 뒤의 명령어를 실행합니다. 즉, 앞의 명령어가 실패하면 뒤의 명령어가 실행됩니다.

  • 사용 예시:
cd /abc || echo "오류"
  • 이 명령어는 /abc 디렉토리로 이동을 시도한 후, 이동에 실패하면 "오류"라는 메시지를 출력합니다.
    성공하면 뒤의 명령어는 실행되지 않습니다.
     

4. 실제 사용 예시

1) 세미콜론을 사용한 예시:

cd /abc; echo "디렉토리 변경"; ls

위 명령어는 /abc로 이동하고, 디렉토리 변경 메시지를 출력한 뒤 ls 명령어를 실행합니다.
앞의 명령어가 성공하든 실패하든 모두 실행됩니다.

 

2) &&를 사용한 예시:
/home으로 이동이 성공했을 때만 "홈 디렉토리로 이동 성공" 메시지를 출력하고 ls 명령어를 실행합니다.

이동이 실패하면 이후 명령어는 실행되지 않습니다.

cd /home && echo "홈 디렉토리로 이동 성공" && ls

 

3) ||를 사용한 예시:

/nonexistent 디렉토리로 이동이 실패할 경우 "디렉토리 없음" 메시지를 출력합니다.

cd /nonexistent || echo "디렉토리 없음"

5. 응용: &&, || 함께 사용하기

&&와 ||를 함께 사용하여 조건적인 흐름을 제어할 수 있습니다.

  • 사용 예시:
cd /home && echo "성공" || echo "실패"
  • 위 명령어는 /home으로 이동에 성공하면 "성공"을 출력하고, 실패하면 "실패"를 출력합니다.
    하지만 이 경우 ||는 앞선 &&의 영향을 받기 때문에 "실패"가 출력되지 않을 수 있습니다.
  • 더 정확한 예시:
cd /home || { echo "실패"; exit 1; }
  • 위 명령어는 /home 디렉토리로 이동이 실패하면 "실패" 메시지를 출력하고 종료합니다.
     

결론

리눅스에서 여러 명령어를 한 줄로 연결할 때는 ;, &&, || 연산자를 적절히 사용하면 편리합니다.

각 연산자의 동작 방식을 이해하고 상황에 맞게 사용하는 것이 중요합니다.

&&는 앞의 명령어가 성공했을 때만 실행되며, ||는 앞의 명령어가 실패했을 때 실행됩니다.

반응형

+ Recent posts