나는 일반적으로 ;
한 줄에 여러 명령을 결합 하는 데 사용 하지만 일부 사람들은 선호합니다 &&
. 차이점이 있습니까? 예를 들어, cd ~; cd -
과 cd ~ && cd -
같은 일을 할 것으로 보인다. 어떤 버전이 더 이식성이 좋습니까? 예를 들어 Android의 쉘과 같은 bash-subset에서 지원됩니까?
나는 일반적으로 ;
한 줄에 여러 명령을 결합 하는 데 사용 하지만 일부 사람들은 선호합니다 &&
. 차이점이 있습니까? 예를 들어, cd ~; cd -
과 cd ~ && cd -
같은 일을 할 것으로 보인다. 어떤 버전이 더 이식성이 좋습니까? 예를 들어 Android의 쉘과 같은 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 *
는 안전하다... ;)
rm -rf /tnp/test
rm /tnp/test/ -rf
치명적인 실수로 미스 클릭을 방지하는 데 사용하는 것이 좋습니다
로 구분 된 명령 ;
은 완료 상태에 관계없이 순차적으로 실행됩니다.
로 &&
두 번째 명령은 첫 번째 명령이 성공적으로 완료된 경우에만 실행됩니다 (종료 상태 0을 반환 함).
이것은 아래의 bash 맨 페이지에서 다룹니다 Lists
. 유닉스와 같은 쉘 이이 두 연산자를 모두 지원할 것으로 기대하지만 Android 쉘에 대해서는 구체적으로 알지 못합니다.