1.변수
DD=0
echo "$DD"
- 환경변수
$0 - 실행된 쉘 스크립트 이름 $# - 스크립트에 넘겨진 인자의 갯수 $$ - 쉘 스크립트의 프로세스 ID
- 인자변수
$1~ $nnn : 넘겨진 인자들 $* : 스크립트에 전달된 인자들을 모아놓은 문자열. 하나의 변수에 저장되며 IFS 환경변수의 첫번째 문자로 구분된다. $@ : $*과 같다. 다만 구분자가 IFS변수의 영향을 받지 않는다.
- 연산
변수 = $((산술식))
- 매개변수 확장
${parm:-default} : parm이 존재하지 않으면 default로 대체된다. ${#parm} : parm의 길이를 참조한다.(가져온다) ${parm%word} : 끝에서부터 word와 일치하는 parm의 최소부분(첫번째 일치) 을 제거하고 나머지를 반환한다. ${parm%%word} : 끝에서부터 word와 일치하는 parm의 최대부분(마지막 일치) 을 제거하고 나머지를 반환한다. ${parm#word} : 처음부터 word와 맞는 parm의 최소부분(첫번째 일치)을 제거하 고 나머지 부분을 반환한다. ${parm##word} : 처음부터 word와 맞는 parm의 최대부분(마지막 일치)을 제거하 고 나머지를 반환한다. * word에는 와일드 카드를 사용할 수 있다.
2.조건판단
- if문
if [ -f test1 ] then
elif [ ] then
else
fi
- case문
case 변수 in
패턴 [ | 패턴 ]...) 문장;;
* ) 문장;;
easc
test 명령 조건
문자열비교 [ string ] : string이 빈 문자열이 아니라면 참 [ string1 = string2 ] : 두 문자열이 같다면 참 [ string1 != string2 ] : 두 문자열이 다르면 참 [ -n string ] : 문자열이 null(빈 문자열) 이 아니라면 참 [ -z string ] : 문자열이 null(빈 문자열) 이라면 참 산술비교 [ expr1 -eq expr2 ] : 두 표현식 값이 같다면 참 ( EQual ) [ expr1 -ne expr2 ] : 두 표현식 갑이 같지 않다면 참 ( Not Equal ) [ expr1 -gt expr2 ] : expr1 > expr2 이면 참 ( Greater Then ) [ expr1 -ge expr2 ] : expr1 >= expr2 이면 참 ( Greater Equal ) [ expr1 -lt expr2 ] : expr1 < expr2 이면 참 ( Less Then ) [ expr1 -le expr2 ] : expr1 <= expr2 이면 참 ( Less Equal ) [ ! expr ] : expr 이 참이면 거짓, 거짓이면 참 [ expr1 -a expr2 ] : expr1 AND expr2 의 결과 ( 둘다 참이면 참 ) [ expr1 -o expr2 ] : expr1 OR expr2 의 결과 ( 둘중 하나만 참이면 참 ) 파일조건 [ -b FILE ] : FILE 이 블럭 디바이스 이면 참 [ -c FILE ] : FILE 이 문자 디바이스 이면 참. [ -d FILE ] : FILE 이 디렉토리이면 참 [ -e FILE ] : FILE 이 존재하면 참 [ -f FILE ] : FILE 이 존재하고 정규파일이면 참 [ -g FILE ] : FILE 이 set-group-id 파일이면 참 [ -h FILE ] : FILE 이 심볼릭 링크이면 참 [ -L FILE ] : FILE 이 심볼릭 링크이면 참 [ -k FILE ] : FILE 이 Sticky bit 가 셋팅되어 있으면 참 [ -p FILE ] : True if file is a named pipe. [ -r FILE ] : 현재 사용자가 읽을 수 있는 파일이면 참 [ -s FILE ] : 파일이 비어있지 않으면 참 [ -S FILE ] : 소켓 디바이스이면 참 [ -t FD ] : FD 가 열려진 터미널이면 참 [ -u FILE ] : FILE 이 set-user-id 파일이면 참 [ -w FILE ] : 현재 사용자가 쓸 수 있는 파일(writable file) 이면 참 [ -x FILE ] : 현재사용자가 실행할 수 있는 파일(Executable file) 이면 참 [ -O FILE ] : FILE 의 소유자가 현재 사용자이면 참 [ -G FILE ] : FILE 의 그룹이 현재 사용자의 그룹과 같으면 참 [ FILE1 -nt FILE2 ] : FILE1이 FILE2 보다 새로운 파일이면 ( 최근파일이면 ) 참 [ FILE1 -ot FILE2 ] : FILE1이 FILE2 보다 오래된 파일이면 참 [ FILE1 -ef FILE2 ] : FILE1 이 FILE2의 하드링크 파일이면 참
3.제어문
- for문
for 변수 in 값1, 값2, ... do 문장 done
- while문
while 조건문 do 문장 done- until문
until 조건문 do 문장 done
- select문
echo "다음중 스크립트언어 프로그래밍에 속하는 것은 ?" select var in "쉘 프로그래밍" "C 프로그래밍" "자바 프로그래밍" "Exit" do if [ "$var" = "쉘 프로그래밍" ] then echo "정답입니다." exit 0 elif [ "$var" = "Exit" ] then echo "종료합니다." exit 1 else echo "$var 을 선택하셨습니다. 오답입니다." echo "다음중 스크립트언어 프로그래밍에 속하는 것은 ?" fi done
4.함수
함수명 () { 문장 return 값 }
함수명 인자1 인자2
5.명령어
break
continue
echo
eval
exec
exit n
export
expr
printf
return
set
shift
trap
unset
6.명령실행
x = $(명령)7.내부에서 명령에 입력 전달하기명령 << 종료문자열 입력값..... 종료문자열
ref:
'os > linux' 카테고리의 다른 글
fedora19 systemd (init.d 대체) (0) | 2013.08.16 |
---|---|
fedora 19 desktop setting (0) | 2013.08.02 |
fedora 19 + haswell + vritual box (0) | 2013.08.02 |
vi tips (0) | 2012.10.17 |