제가 초보라서 기본적인 질문을 하더라도 이해해 주시면 감사하겠습니다.
a.out 이란 프로그램을 돌리고 계산이 끝난 후에 나오는 결과 파일, result.dat가 나오면 gcc -lm ascii.c를 컴파일 해서 나오는 실행파일, b.out을 실행하는 스크립트 알려주시면 감사하겠습니다.
이걸 원하시는 건가요?
#!/bin/sh ./a.out gcc -lm ascii.c ./b.out
아니면 에러 핸들링까지 한다면
#!/bin/sh ./a.out && gcc -lm ascii.c && ./b.out
위 처럼 할 때 a.out이 실행되는 동안에 gcc-lm ascii.c 이 실행될 수 있지 않나요? 그러면 안되거든요. b.out이 실행되려면 a.out이 끝난 결과가 있어야 하거든요
둘 다 순차적으로 실행되는 코드입니다. 셸 스크립트에서는 별도로 지정하지 않는 한(보통 뒤에 &를 붙이거나 하지 않는 한) 특정한 명령이 다 실행되고 반환될 때까지 다음 명령으로 넘어가지 않습니다.
#!/bin/bash ./a.out # main() 리턴값이 0 이 아니면 ( invalid != 0 ) if [ $? -ne 0 ] ; then echo "I'm sorry." exit fi gcc -lm ascii.c # main() 리턴값이 0 이 아니면 ( invalid != 0 ) if [ $? -ne 0 ] ; then echo "I'm sorry." exit fi ./b.out # main() 리턴값이 0 이 아니면 ( invalid != 0 ) if [ $? -ne 0 ] ; then echo "I'm sorry." exit fi
바로 전의 실행상태로 현재 실행할지 결정하고 싶어시는 듯합니다.
주의하실 점은 모든 유틸, 쉘... 등이 정상종료 0을 리턴하리라는 보장이 없습니다.
반드시 확인을 해주어야 합니다. 대표적으로 diff 가 그렇습니다. ^^;
Hello World.
여러분들이 이렇게 잘 설명해 주시니 감사합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
이걸 원하시는
이걸 원하시는 건가요?
아니면 에러 핸들링까지 한다면
위 처럼 할 때
위 처럼 할 때 a.out이 실행되는 동안에 gcc-lm ascii.c 이 실행될 수 있지 않나요?
그러면 안되거든요. b.out이 실행되려면 a.out이 끝난 결과가 있어야 하거든요
둘 다 순차적으로
둘 다 순차적으로 실행되는 코드입니다. 셸 스크립트에서는 별도로 지정하지 않는 한(보통 뒤에 &를 붙이거나 하지 않는 한) 특정한 명령이 다 실행되고 반환될 때까지 다음 명령으로 넘어가지 않습니다.
혹시...
바로 전의 실행상태로 현재 실행할지 결정하고 싶어시는 듯합니다.
주의하실 점은 모든 유틸, 쉘... 등이 정상종료 0을 리턴하리라는 보장이 없습니다.
반드시 확인을 해주어야 합니다. 대표적으로 diff 가 그렇습니다. ^^;
Hello World.
우와
여러분들이 이렇게 잘 설명해 주시니 감사합니다.
댓글 달기