2017-02-28 7 views
1

:bash는 명령 XOR^anothercommand 아래의 예에서

w^ls 

쉘에서 XOR 연산자의 예상되는 동작은 무엇입니까?

그래서 우리는 (그것을 전혀 실행할 경우) 실행 anothercommand을 트리거 무엇

command^anothercommand 

입력 할 때?

+1

'* &&'또는'||'와 같은 * 연산자 인 경우 XOR 값은 두 피연산자에 의해 결정되므로 두 명령을 모두 실행해야합니다 (단락되지 않습니다). 하나의 명령이 실패하고 다른 명령이 성공하면 결과 종료 상태는 0이되고 그렇지 않으면 1이됩니다. 나는 그것이 유용 할 수있는 시나리오를 실제로 묘사 할 수 없다. – chepner

답변

2

, 당신은 단순히 두 개의 인자, ^anothercommandcommand를 제공하고 있기 때문이다

$ echo $((5^9)) 
12 

. 여기서 연산자가 없습니다. anothercommandcommand이 해당 인수를 명령 이름으로 처리하고 실행하려고 결정한 경우에만 실행됩니다.

+0

^를 인수로 허용하는 명령의 예를 제공 할 수 있습니까? –

1

man bash에서 볼 수 있듯이 ^은 명령어를 구분하는 데 사용되지 않으며 산술 표현식에 사용됩니다. 당신이 command^anothercommand 입력하면

dec  bin 
5  0101 
9  1001 
----------- 
12  1100 
+0

솔직히 말해 OP의 의도에 따라 명령의 종료 코드 (각 명령의 반환 값에 대한 XOR)를 기반으로 작동합니다. – Inian

+0

그래도 명령에 사용할 때 bash가 불평하지 않는 이유는 무엇입니까? –

+0

그것은 나를 위해 :'$ id^ls id : 추가 피연산자 'ls' 자세한 내용은 'id --help'를 시도하십시오. ' – choroba