Bash/sh - & 및 ;의 차이
주로 사용합니다.;
한 줄에 두 개 이상의 명령어를 결합하는 것을 선호하지만, 일부 사람들은&&
차이가 있습니까?예를들면,cd ~; cd -
그리고.cd ~ && cd -
같은 것을 만드는 것 같습니다.어떤 버전이 더 휴대성이 좋습니까, 예를 들어 안드로이드의 셸 등과 같은 bash-subset에서 지원될 것입니까?
이전 명령이 실패한 경우;
두 번째가 실행됩니다.
하지만 함께&&
두 번째는 실행되지 않습니다.
이것은 작업 간의 "지루한" 논리적 "AND" 피연산자입니다.
사용 중&&
왜냐하면 오래전에 근처 컴퓨터에서
root# pwd
/
root# cd /tnp/test; rm -rf *
cd: /tnp/test: No such file or directory
...
... and after a while ...
...
^C
하지만 도움이 안 됐어요...;)
cd /tnp/test && rm -rf *
안전합니다...;)
인cmd1 && cmd2
,cmd2
다음과 같은 경우에만 실행됩니다.cmd1
success(0)입니다.
인cmd1 ; cmd2
,cmd2
어떤 경우에도 실행됩니다.
두 구성 모두 POSIX 호환 셸의 일부입니다.
&&
이전 명령이 상태 0으로 종료된 경우 다음 명령을 실행합니다.반대의 경우에는||
즉, 이전 명령이 0이 아닌 상태로 종료되는 경우 실행됩니다.;
항상 실행됩니다.
이전 명령이 정상적으로 종료되었는지 여부에 따라 특정 작업을 수행해야 할 때 매우 유용합니다.
명령은 다음으로 구분됩니다.;
완료 상태에 관계없이 순차적으로 실행됩니다.
와 함께&&
두 번째 명령은 첫 번째 명령이 성공적으로 완료된 경우에만 실행됩니다(종료 상태가 0인 경우).
이것은 아래의 bashman 페이지에서 다룹니다.Lists
저는 유닉스 계열 셸이 이 두 운영자를 모두 지원할 것으로 예상하지만 안드로이드 셸에 대해서는 구체적으로 알지 못합니다.
&&
조건부 실행을 허용하는 동안;
항상 두 번째 명령이 실행됩니다.
예를 들어.command1 && command2
,command2
다음과 같은 경우에만 실행됩니다.command1
으로 종료되었습니다.exit 0
에 있는 동안 신호 전달이 모두 잘 되었습니다.command1 ; command2
두 번째 명령은 결과에 관계없이 항상 실행됩니다.command1
.
논리적 AND(배시)입니다.Bash에는 논리적 AND에 대한 단락 평가가 있습니다.이 관용구는 다음을 더 간단하게 표현할 수 있는 방법입니다.
cmd1;rc=$?
if [ $rc -eq 0 ]; then
cmd2
fi
반면 ; 버전은 다음과 같습니다.
cmd1
cmd2
언급URL : https://stackoverflow.com/questions/6152659/bash-sh-difference-between-and
'programing' 카테고리의 다른 글
Excel/VB 함수 오류: "일정한 식을 입력해야 합니다." (0) | 2023.04.29 |
---|---|
스위프트에서 배열을 섞으려면 어떻게 해야 합니까? (0) | 2023.04.29 |
ASP.NET 리피터 바인딩 목록 (0) | 2023.04.29 |
컨트롤러/뷰에 대한 ASP MVChref (0) | 2023.04.29 |
Openpyxl이 읽기 전용 모드에서 Excel 워크북을 닫지 않음 (0) | 2023.04.29 |