티스토리 툴바


Programming2009/02/19 16:28
환경변수(Environment variable)은 쉘에서 참조하는 변수입니다. 쉘에서 참조하는 변수는 크게 그냥 변수(Variable)과 환경변수로 나누어 지는데, 환경변수와 변수의 가장 큰 차이점은 자식쉘을 생성할 시에 환경변수는 상속이 되는 반면 그냥 변수는 없어져 버립니다. 프로그래밍 변수의 전역변수와 지역변수의 차이라고 생각하시면 됩니다.
쉘 프로그래밍으로 아래와 같이 환경변수를 등록 시켰음에도 불구하고 아래의 예에서 처럼 환경변수로 생성이 되지 않는 이유는 쉘스크립트는 실행시에 현재쉘이 자식쉘로 등록이 되기 때문에 자식쉘에서 환경변수를 등록한다고 하더라도 부모의 환경변수에 접근할 수 없기 때문입니다.

 $ cat a.sh
   #/bin/bash
   export VAR="abcd"
   echo $VAR
 $ ./a.sh
 abcd
 $ echo $VAR

 $

그래서 쉘스크립트에서 실행되는 환경변수를 현재쉘에 등록하고자 하는 경우에는 source명령이나 "."같은 명령으로 등록할 수 있습니다. 여기서 "."의 의미는 다음의 쉘은 자식쉘을 생성하지 말고 현재 쉘에서 수행할 것과 같은 의미라고 볼 수 있습니다.

 $ cat a.sh
   #/bin/bash
   export VAR="abcd"
   echo $VAR
 $ source a.sh
 abcd
 $ echo $VAR
 abcd
 $ export VAR=
 $ echo $VAR

 $ . a.sh
 abcd
 $ echo $VAR
 abcd

Posted by 붕탱구

TRACKBACK http://happyoutlet.tistory.com/trackback/285 관련글 쓰기

댓글을 달아 주세요

Programming2008/12/26 17:17
export PS1='\[\033[32m[\007\033[\0m\]\[\033[33m\w\033[0m\]\[\033[32m]\007\033[\0m\]'
아래와 같이 현재 디렉토리를 예쁘게 뿌려줍니다.. ^^

Posted by 붕탱구

TRACKBACK http://happyoutlet.tistory.com/trackback/274 관련글 쓰기

댓글을 달아 주세요

  1. PS1="\\033[32m[\\033[33m\w\\033[32m]\\033[0m"

    맥에서는 위와 같이 해주시면 똑같네요~

    2010/02/12 01:05 [ ADDR : EDIT/ DEL : REPLY ]

Programming2008/11/26 00:34

RTOS 관련 참고서적

1. MicroC/OS-II 실시간 커널 제2판, Jean J. Labross 저, 성원호 역, 에이콘

2. 만들면서 배우는 OS 커널의 구조와 원리, 김범준 저, 한빛미디어

3. RTOS를 이용한 실시간 임베디드 시스템 디자인, Oing Li. Caroline Yao 저, 전동환, 성원호 역, 에이콘

4. 실시간 임베디드 시스템 디자인(RTOS를 이용한), QING LI 저, 전동환 역, 에이콘출판사

5. 실시간 임베디드 멀티스레딩, EDWARD L.LAMIE 저, 김도형 역, 에이콘출판사

6. 실시간 임베디드 퀀텀프로그래밍, MIRO SAMEK 저, 김기영외 역, 에이콘출판사

7. 실시간 시스템 입문, 김화수외, 집문당


임베디드 관련 참고 사이트

1. 리눅스 커널
http://kernel.org   ftp://ftp.kernel.org
http://kldp.org
http://kltp.kldp.org  
http://kldp.net

2. GNU 컴파일러, 라이브러리 및 유틸리티
http://gnu.org     ftp://ftp.gnu.org
http://kegel.com/crosstool

3. 임베디드 스터디
http://kelp.or.kr
http://kesl.org
http://www.e2g.org
http://ietf.org

4. 임베디드 리눅스 관련 소스
http://sourceforge.net
http://freshmeat.net
http://ffmpeg.sourceforge.net
http://linux-usb.org
http://iptables.org
http://pcmcia-cs.sourceforge.net
socket 프로그래밍 : http://pont.net/socket

5. 임베디드 보드
http://jachigi.com

6. O’Reilly 리눅스 디바이스 드라이버
소스코드 : http://examples.oreilly.com/linuxdrive2
책 : http://xml.com/ldd/chapter/book

7. 각종 RPM 찾기
http://rpmfind.com

8. USB(uhc124)
http://www.transdimension.com/product

9. ARM Assemble Programming 관련
http://www.arm.com/documentation/Software_Development_Tools/index.html

10. ARM Core 관련
http://www.arm.com/documentation/ARMProcessor_Cores/index.html

11. ARM Assemblely Programming 관련
http://www.heyrick.co.uk/assembler/qfinder.html

12. 임베디드 개발자 입문(박철:잡지에 게제된글)
http://blog.naver.com/naisland/140011368655

Posted by 붕탱구

TRACKBACK http://happyoutlet.tistory.com/trackback/13 관련글 쓰기

댓글을 달아 주세요

Programming2008/07/08 14:35

This is my first perl program.

--------------------------------
#!/usr/bin/perl
#2008.7.8 William Seo
#This is my first perl program to make a perl script file.
#You can use this if you want a new perl script.

sub checkArg
{
 if( $#ARGV+1 == 1)
 {
  1;
 }
}

checkArg() or die "np\nUsage:np scriptName";

#make a date string
$DATE=`date +20%y.%m.%d`;
#remove trailing new line character
chomp($DATE);

open INPUT, ">$ARGV[$#ARGV]" or die "File Open Error";

print INPUT "#!/usr/bin/perl\n";
#add some strings
print INPUT "#$DATE William Seo\n\n";

#change mode for executable
chmod(0755,$ARGV[$#ARGV]);

close INPUT;

print $ARGV[$#ARGV]." was created!\n";
---------------------------------------------------------------------

Posted by 붕탱구
TAG PERL

TRACKBACK http://happyoutlet.tistory.com/trackback/238 관련글 쓰기

댓글을 달아 주세요

Programming2007/06/15 03:14

C++와꾸를 만드는게 너무나 소비적이라는 생각에 와꾸를 만들어 주는 스크립트입니다.(김윤수님의 C/C++  프로그래밍팁 1탄에 나오는 헤더파일 중복을 자동으로 입력시켜 주는 스크립트입니다.) 솔직히 와꾸 만드는거 빼곤 할 줄 아는게 없습니다 ㅠㅠ.

~/bin/nc로 만들어 놓고

$nc 와꾸명

이런식으로 실행하면 클래스 와꾸가 만들어 집니다! 클래스를 많이 만들때 좋을 거 같습니다.



#! /bin/bash
DATE=$(date +20%y.%m.%d)

if [ $# -lt 1 ]
then
echo "Usage : newclass [classname]"
echo "Wrong Number of Argument"
exit 1
fi

if [ -f ./$1.cpp ]
then
echo "$1.cpp already exists!"
exit 1
fi

if [ -f ./$1.h ]
then
echo "$1.h already exists!"
exit 1
fi

CLASS=`echo $1 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
DEFNAME=`echo $CLASS | sed 's/.*/__C&_H__/'`

FIRST=`echo $1 | cut -c1 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRS
TUVWXYZ/'`
LAST=`echo $1 | sed 's/.\(.*\)/\1/'`
CLASSNAME=C$FIRST$LAST

touch $1.cpp $1.h

echo "#include \"$1.h\"" > $1.cpp
echo "// $DATE" >> $1.cpp
.
.
.
이하 생략!(아래 첨부파일 참조하세요~~)

nc

클래스와꾸생성기

Posted by 붕탱구

TRACKBACK http://happyoutlet.tistory.com/trackback/28 관련글 쓰기

댓글을 달아 주세요