2011-05-02 4 views
2
sfdisk -D $val << EOF 
,,$type 
EOF 

실행 후 어떻게 상태를 확인할 수 있습니까? if ... via ... $ ?, but disjunction ||에 의해. 내가하는 말은 다음을 할 수 있다는 것입니다. ls || exit 4 ls 오류가 발생하면 코드 4로 종료되지만 내 예제에서는 어떻게 수행 할 수 있습니까?여러 줄 명령 및 상태 코드

두 번째 질문은 실패시 어떻게 여러 명령을 수행 할 수 있습니까? 이거 괜찮은거야?

`ls` || { echo "!!!"; exit 4 } 

고마워요!

내가 여기 & &을 사용하고 있습니다 :

답변

5

당신은 실제로 두 개의 서로 다른 질문 ...

첫 번째에 대한 답변을 요구하고, 당신이 < < FOO 부분 후에 조건을 넣어 것입니다 convience 출력을 볼 수 있습니다. 그러나이 명령 세트 :

# cat << EOF && (echo hi ; echo there) 
foo 
bar 
EOF 

당신이 얻을 :

foo 
bar 
hi 
there 

, 당신이들) (사용해야 두 번째 질문에 대답 : 두 번째 질문에

# bash -c 'exit 1' || (echo hi ; echo there) 
hi 
there 
+1

:'()' (예 : 종료, 설정 변수 등이 예상대로 작동하지 않음) 원하는 내용이 아닌 서브 쉘에서 내용을 실행합니다. 대신 명령 뒤에'{}'를 세미콜론으로 사용하십시오 :'bash -c 'exit 1'|| {echo hi; 거기에 에코. } ' –

+0

안녕하세요. 이런 식으로 작동하지 않습니다 : 'sfdisk -D $ dev << EOF || {losetup -d $ dev; exit 3} ,, $ fsys EOF' – azerIO

+1

당신은 ';' 3 전후} –