shell script에서 한줄의 명령어를 다 완료한 후 다음 줄을 실행하게 하려면 어떻게 해야하죠?

chobozzangman의 이미지

예를 들어 첫째줄에 rpm -ivh xx.rpm 이걸 실행하고 다완료 되면
rm -r xx.rpm 이런식으로 동작하게 하려면 sleep 으로 예측해서 하는 방법 밖에 없을까요?

익명 사용자의 이미지

원래 그렇게 돌아갑니다.

Prentice의 이미지

rpm -ivh xx.rpm && rm -r xx.rpm || echo "Install failed! File not deleted."

성공하면 삭제. 아니면 오류 출력. 이렇게 하실 수도 있습니다.

익명 사용자의 이미지

&&명령어로 echo랑 묶으면 그럴 일은 없겟지만 echo 가 실패한건지 가늠할 수 없을거 같아서요...

baimouths의 이미지

그럼 필요한 부분에 pause 를 넣으면 되지 않을까요?
http://answers.yahoo.com/question/index?qid=20081113203609AAVWePG 를 보니

read -p "Press any key to continue…"

와 같이 pause 를 할 수 있다고 하는데 (윈도우즈에는 pause 가 있는데 리눅스엔 없군요??)
필요한 변수나 내용을 넣어주시면 될 것 같아요

Prentice의 이미지

rpm -ivh xx.rpm && rm -r xx.rpm || echo "Install failed! File not deleted." || touch ~/echo_failed_creating_error_file

echo가 실패한 건지 가늠하려면 || 추가... 이걸 말하신 건 아닌 것 같은데... 한 명령어씩 확인한다는 게 무슨 말씀이세요?

익명 사용자의 이미지

rpm -ivh xx.rpm && echo "install success"
rm -r xx.rpm && echo "successfully deleted"

이런식으로 확인하고 싶어서요.. rpm 설치 후 지우는건 예구요 실은 지금 문제가 되고 있는 스크립트가 하나가 있는데 실행되는 프로세스를 멈추고 바이너리를 교체한 후 다시 실행시키는 건데 잘안먹어서 한 명령어씩 확인해 보려구요.

익명 사용자의 이미지

스크립트 시작 부분에

set -e

를 주면 각 라인을 실행하면서 프로세스의 반환값이 0이 아니면 멈춥니다.

익명 사용자의 이미지

답변해 주신분들 모두 감사합니다.