간단한 .sh 파일 혹은 makefile 만들기...

white-hill의 이미지

안녕하세요...
완젼 초보 리눅스 유저 입니다..ㅠ ㅠ
간단한 스크립트 를 실행하려고 합니다..
여러분들의 도움이 목숨 하나 살립니다..

공통 설절.
_SDK_32_BASE=/home/darren/SDK_32/SRC/target/src/
_SDK_32_ORG=/home/darren/SDK_32_ORG/SRC/target/src/

실핼 명령어.

1. .sh 파일에서 실행할 경우.
echo $_SDK_32_BASE
echo $_SDK_32_ORG
diff -aurN $_SDK_32_ORG $_SDK_32_BASE > Oberon_SDK_32.patch
결과
/home/darren/SDK_32/SRC/target/src/
/home/darren/SDK_32_ORG/SRC/target/src/
: No such file or directoryRG/SRC/target/src/
: No such file or directoryRC/target/src/

echo 에서 설정 값이 잘 나오는데 실행이 왜 되지 않을까요...ㅠㅠ

2. makefile 에서 실행할 경우.
diff -aurN $_SDK_32_ORG $_SDK_32_BASE > Oberon_SDK_32.patch
결과
make: *** [patch] Error 1

diff 리턴 값이 0과 1은 정상으로 처리 하고 싶은데..
if 또는 ifeq 명령어를 어떻게 사용하여 예외 처리를 해야하는지...ㅠ ㅠ

diff -aurN $_SDK_32_ORG $_SDK_32_BASE > Oberon_SDK_32.patch
명령어 실행 후 어떤 식으로 리턴 값을 활용 할 수 있을까요....

간단하지만 어려운 문제에 봉착하여..ㅠ ㅠ
아는 거라고는 딱 C 문법 밖에 없어서(이것도 아직... ㅎㅎㅎ)
이건 뭐...ㅠ ㅠ

그럼 고수분들의 따스한 손길을 기다려 보겠습니다..

okchuri의 이미지

일단 간단히 1번에 대해서만 해봤는데 정상적으로 되는데요?

각 경로에 test.c 파일 하나 만들어 놓고 해 봤습니다.
(우분투 10.10 버젼입니다.)

_SDK_32_BASE=/home/user/base/src/target/src _SDK_32_ORG=/home/user/org/src/target/src

echo $_SDK_32_BASE
echo $_SDK_32_ORG
diff -aurN $_SDK_32_ORG $_SDK_32_BASE > Oberon_SDK_32.patch

diff -aurN /home/user/org/src/target/src/test.c /home/user/base/src/target/src/test.c --- /home/user/org/src/target/src/test.c 2011-03-18 10:49:46.722864000 +0900 +++ /home/user/base/src/target/src/test.c 2011-03-18 10:52:42.195084002 +0900 @@ -1 +1 @@ -aaaa +bbbbb

white-hill의 이미지

_SDK_32_BASE=/home/darren/test_new/
_SDK_32_ORG=/home/darren/test_org/
echo ================================================================
echo Make [Oberon_SDK_32.patch] File ...
echo ================================================================
echo $_SDK_32_BASE
echo $_SDK_32_ORG
diff -urN $_SDK_32_ORG $_SDK_32_BASE > test.patch
echo ================================================================
echo Make Complete...
echo ================================================================

제가 test 용으로 작성한 녀석이구요...
각각 폴더엔 test.c 녀석 넣었구요...

================================================================
Make [Oberon_SDK_32.patch] File ...
================================================================
/home/darren/test_new/
/home/darren/test_org/
: No such file or directory/
: No such file or directory/
================================================================
Make Complete...
================================================================

결과 입니다..ㅠ ㅠ

echo 로는 결과 출력이 되는데...
명령어에서 왜 No such.... 가...

참고로 저는 현재 CentOs 5.6 입니다...ㅠㅇㅠ

익명 사용자의 이미지

실제로 디렉토리가 생성되어 있는게 맞으신가요?
echo는 변수를 출력하고 끝나는거라 존재 여부를 파악할 수 없습니다.
임시로 echo대신 ls -d 정도로 해서 실행시켜 보세요.

okchuri의 이미지

patch -p0 < Oberon_SDK_32.patch

위와 같이 실행하면, /home/user/org/src/target/src/test.c의 내용이 "aaaa"에서 "bbbbb"로 바뀌어 있을 겁니다.

bushi의 이미지

_SDK_32_BASE 와 _SDK_32_ORG 에 들어있는 문자열의 끝에 \r 이 붙어있습니다.

bash 매뉴얼, make 매뉴얼 읽어보시면 생각이 달라질 수도 있습니다.

A=$(shell diff -u a.txt b.txt || echo fail)
ifeq ($(A),fail)
 $(error diff fail)
else
 $(info diff OK)
endif

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.