2009-07-12 4 views

답변

5

||은 거의 '또는'연산자입니다.

위의 코드 예제에서는 먼저 less /tmp/manual을 실행하고 true가 아닌 값을 반환하면 read을 실행합니다. 첫 번째 명령이 true 값을 반환하면 짧은 명령으로 인해 읽기 명령이 수행되지 않습니다.

덕분에 Michiel : 연산자는 수학적 OR이 아니므로 교환 할 수 없습니다.

+3

@MitMaro @MitMaro 이것은 단발적이지만, 설명하는 동작은 논리적 인 또는 논리와 동일하지 않습니다. 실제 '또는'은 교환 가능합니다 (예 : (a \/b) = (b \/a)). –

+0

@Michiel : 귀하의 요점은 훌륭합니다! - 두 명령이 모두 성공했기 때문에 혼란 스러웠지만 첫 번째 명령 만 실행되었습니다. --- 이것은 내 코드의 마지막 부분을 제거 할 수 있다고 제안합니다. –

3

MitMaro가 말한 바. 이 경우 셸의 매개 변수 또는/bin/sh입니다. 기술적으로 그것은 "매개 변수"(다른 용어 임)가 아니지만 쉘의 "문법"의 일부입니다.)

자세한 내용은 man page on sh을 참조하십시오. 당신이 찾고있는 것은 "목록"섹션에 있습니다.

발췌문 :

는 OR리스트

command1 || command2 

Command2를 실행하는 형태가있는 경우 다음 Command1 0이 아닌 종료 상태를 반환하는 경우에만.

AND 및 OR 목록의 반환 상태는 목록에서 마지막으로 수행 된 명령의 종료 상태입니다.

+0

맨 페이지에서이 부분을 찾는 위치를 알지 못했습니다. GreenReign에게 감사드립니다. – MitMaro

관련 문제