쉘 스크립트로 일련의 작업을 순차적으로 시키려면

quanta1의 이미지

제가 초보라서 기본적인 질문을 하더라도 이해해 주시면 감사하겠습니다.

a.out 이란 프로그램을 돌리고
계산이 끝난 후에 나오는 결과 파일, result.dat가 나오면
gcc -lm ascii.c를 컴파일 해서 나오는 실행파일, b.out을 실행하는 스크립트 알려주시면 감사하겠습니다.

ktd2004의 이미지

이걸 원하시는 건가요?

#!/bin/sh
./a.out
gcc -lm ascii.c
./b.out

아니면 에러 핸들링까지 한다면

#!/bin/sh
./a.out && gcc -lm ascii.c && ./b.out
quanta1의 이미지

위 처럼 할 때 a.out이 실행되는 동안에 gcc-lm ascii.c 이 실행될 수 있지 않나요?
그러면 안되거든요. b.out이 실행되려면 a.out이 끝난 결과가 있어야 하거든요

lifthrasiir의 이미지

둘 다 순차적으로 실행되는 코드입니다. 셸 스크립트에서는 별도로 지정하지 않는 한(보통 뒤에 &를 붙이거나 하지 않는 한) 특정한 명령이 다 실행되고 반환될 때까지 다음 명령으로 넘어가지 않습니다.

오호라의 이미지

#!/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.

quanta1의 이미지

여러분들이 이렇게 잘 설명해 주시니 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.