내 탭이 완료되었습니다 BASH
(debian
)는 두 명령을 결합하는 다른 숫자를 보여줍니다. 어떤 면에서는 권한이 많을수록 더 많은 명령을 실행할 수 있습니다(예: sudo
.
;
분명히 와 연결되는 방식 &&
은 약간 다릅니다.
- 그들 사이의 차이점은 무엇입니까?
- 권한이 있는 사용자가 액세스할 수 있는 명령 수의 차이가 줄어드는 이유는 무엇입니까
root
? 나는 숫자가 증가할 것으로 예상한다(차이). (가장 가능성이 높음/일반적인 이유)
nepumuk@nepumuk:~$
Display all 2216 possibilities? (y or n)
nepumuk@nepumuk:~$ date ;
Display all 2214 possibilities? (y or n)
nepumuk@nepumuk:~$ date &&
Display all 2216 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; sudo
Display all 2729 possibilities? (y or n)
nepumuk@nepumuk:~$ date && sudo
Display all 2730 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; man
Display all 8127 possibilities? (y or n)
nepumuk@nepumuk:~$ date && man
Display all 8127 possibilities? (y or n)
편집 1:또한 이 쿼리를 수행하고 다시 시작하면 "가능성의 수"가 한두 개 증가한다는 사실도 발견했습니다(어느 정도 예측 가능한 매뉴얼 수에 더해)..... .
재현 가능한 동작이 발생한 이후로 몇 번 그렇게 했습니다.
nepumuk@nepumuk:~$
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date ;
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date &&
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; sudo
Display all 2735 possibilities? (y or n)
nepumuk@nepumuk:~$ date && sudo
Display all 2735 possibilities? (y or n)
편집 2sudo
: "enable"을 사용하여 일부 명령을 실행할 수도 없습니다 .
nepumuk@nepumuk:~$ sudo alias
sudo: alias: command not found
sudo
따라서 명령 수(더 정확하게는 명령 집합)를 사용하는지 여부에 따라 차이가 발생합니다.
답변1
나는 표시된 "가능성"이 반드시 실행할 수 있는 프로그램은 아니라고 생각합니다. 예를 들어 를 입력하면 man
실행할 수 있는 작업이 많이 있다고 표시될 수 있습니다 man
(예 man ls
: ). 루트인지 여부에 관계없이 실행할 수 있는 명령 수는 매우 유사해야 합니다. 루트가 아닌 경우에도 동일한 프로그램을 실행할 수 있습니다. 프로그램이 루트 권한을 얻을 수 없으면 오류가 보고됩니다.
&&
와 의 차이점 은 ;
간단합니다. &&
오른쪽 명령은 왼쪽 명령이 성공적으로 완료된 경우에만 실행됩니다. ;
오른쪽 명령은 왼쪽 명령이 완료되는 방식에 관계없이 실행됩니다. 행동은 &&
소위 말하는 것 때문에 발생합니다.단락 평가.
더 구체적으로 말하면 &&
오른쪽 명령은 다음과 같은 경우에만 실행됩니다.종료 코드왼쪽 명령의 값은 0입니다. 대조적 &&
으로 ||
, 오른쪽 명령은 왼쪽 명령이 0이 아닌 종료 코드를 반환하는 경우에만 실행됩니다.