간단한 .sh 파일 혹은 makefile 만들기...
안녕하세요...
완젼 초보 리눅스 유저 입니다..ㅠ ㅠ
간단한 스크립트 를 실행하려고 합니다..
여러분들의 도움이 목숨 하나 살립니다..
공통 설절.
_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 문법 밖에 없어서(이것도 아직... ㅎㅎㅎ)
이건 뭐...ㅠ ㅠ
그럼 고수분들의 따스한 손길을 기다려 보겠습니다..
잘 되는듯 한데요
일단 간단히 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
헛...잘 되신다구요?. ^^;;;;;
_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 정도로 해서 실행시켜 보세요.
추후 patch도 잘 되네요
patch -p0 < Oberon_SDK_32.patch
위와 같이 실행하면, /home/user/org/src/target/src/test.c의 내용이 "aaaa"에서 "bbbbb"로 바뀌어 있을 겁니다.
끝에 \r 이 붙어있습니다.bash 매뉴얼,
_SDK_32_BASE 와 _SDK_32_ORG 에 들어있는 문자열의 끝에 \r 이 붙어있습니다.
bash 매뉴얼, make 매뉴얼 읽어보시면 생각이 달라질 수도 있습니다.
댓글 달기