1 / 20

Unix Shell Script

Unix Shell Script. 2003/03/24 For SPARCS ’03 김군훈 <airlover@sparcs.kaist>. Index. What is shell? Shell configuration & Environment variable. Standard input/output/error, Redirection, Pipelining. Shell script examples. Shell script syntax. Special parameter Making shell. Homework. User.

sylvie
Télécharger la présentation

Unix Shell Script

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unix Shell Script 2003/03/24 For SPARCS ’03 김군훈<airlover@sparcs.kaist>

  2. Index • What is shell? • Shell configuration & Environment variable. • Standard input/output/error,Redirection, Pipelining. • Shell script examples. • Shell script syntax. • Special parameter • Making shell. • Homework.

  3. User What is shell? • Command / Interpreter • Bourn Shell • C Shell • Korn Shell • Bash • Tcsh Program Shell Kernel Program Program

  4. Bash Configuration • .bash_login: Login initialization like .login • .bash_logout: Logout actions • .bashrc: Shell configuration • .bash_profile: Login shell configuration • .inputrc: Individual readline initialization file • .bash_history: Command history file

  5. Environment Variable. • PWD • Current working directory. • PATH • The search path. • PS1 • The primary prompt string. • MAIL • Filename to check mail. Shell Var. - set export Environ. Var. - env

  6. 0 - STDIN 0 - STDIN 1 - STDOUT 1 - STDOUT 2 – STDERR 2 – STDERR : : : : : : Standard input, output, error Program2 FD Program1 FD

  7. File File Program Program Redirection & Pipelining < > | Etc.. >> << <<< 2>&1 2> &>…

  8. Script Examples - Start #!/bin/sh mutt telnet ara telnet ska telnet pie

  9. Script Examples(2) – Color Table #!/usr/local/bin/bash esc="\033[" echo -e " 40 41 42 43 44 45 46 47" for fore in 30 31 32 33 34 35 36 37; do line1="$fore " line2=" " for back in 40 41 42 43 44 45 46 47; do line1="${line1}${esc}${back};${fore}m 보통 ${esc}0m " line2="${line2}${esc}${back};${fore};1m 밝은 ${esc}0m " done echo -e "$line1\n$line2" done

  10. Script Examples(3) – Dictionary $ sh eng_dic shell shell [LINK] 발음듣기 [INLINE] shell [ [INLINE] 雩] n. 1 a 조가비(seashell); (굴의) 껍질 b (거북 [INLINE] 새우 [INLINE] 게 등의) 등딱지, 껍데기 c (콩의) 깍지, 꼬투리 d 시초(翅?), 딱지 날개 e (번데기의) 외피 f (과일 [INLINE] 종자 등의) 껍질; [ pl. ] 카카오 껍질(cacao shells) #!/bin/sh WORD=$* WORD=$(echo ${WORD} |od -tx1 -w1000 |head -1 \ |sed -e 's/^[0-9]\+ //' -e 's/ 0a$//' -e 's/20/+/g' -e 's/ /%/g' -e 's/^/%/' \ |tr '[a-z]' '[A-Z]') lynx -nolist -verbose -dump http://kr.engdic.yahoo.com/result.html?p=${WORD} \ |grep -v "bu2.gif" |tail +14 |tac |tail +11 |tac \ |sed -e 's/[phon[0-9]\+\.gif] //g' -e 's/[phon[0-9]\+\.gif]//g' \ |less -r

  11. Script Examples(4) – Etc. • Automatic install program. • Homework submit program. • Homework num., source file • Delay due • Homework marking program. • Compare optimized solution • Check execution time. • Check empty IP address.

  12. Shell script syntax - for • for name [ in word ] ; do list ; done #!/usr/local/bin/bash for ((i=102;i<151;i++)); do data=`nslookup 143.248.234.$i 2> /dev/null| tail +4|head -1`; echo $i $data; done; 102 Name: sparcs.kaist.ac.kr 103 Name: ara.kaist.ac.kr 104 Name: baram.kaist.ac.kr 105 Name: gurum.kaist.ac.kr 106 Name: sparcs6.kaist.ac.kr 107 Name: sparcs7.kaist.ac.kr 108 Name: sparcs8.kaist.ac.kr 109 Name: sparcs9.kaist.ac.kr 110 Name: ftp.kaist.ac.kr . . . . . . . . . . . . . . . .

  13. Shell script syntax(2) - if • if list; then list; [ elif list; then list; ] ... [ else list; ] fi #!/bin/sh echo $1; echo $2; if [ "$1" = "$2" ]; then echo "It's same"; else echo "It's different"; fi $ ./diff abc abc abc abc It’s same $ ./diff abcc abcd abcc Abcd It’s different

  14. Shell script syntax(3) – select • select name [ in word ] ; do list ; done #!/usr/local/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello" ]; then echo Hello World else clear echo bad option fi done 1) Hello 2) Quit #? 1 Hello World #? 2 done

  15. Shell script syntax(4) - case • case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac #!/bin/sh case $1 in all) telnet ara; telnet ska; telnet noah;; a) telnet aka;; s) telnet ska;; n) telnet noah;; esac

  16. Shell script syntax(5) – Etc. • while list; do list; done • until list; do list; done • [ function ] name () { list; }

  17. Special Parameters • 0 : Name of the shell or shell script • $ : Process ID of the this shell • ! : Process ID of last background command • # : Number of arguments • @ : Positional parameter • 1, 2, 3, .. 9 : n-th argument

  18. Making Shell • 2003 SP Seminar on summer vacation • For studying system programming. • For being a SPARCS man. • A flower of circle activation. • SP + ARCS = SPARCS

  19. Homework • airlover라는 폴더를 만든다. • 위에서 만든 폴더에 이름이 SPARCS 03학번 회원들의 아이디인 파일을 만들고 그 회원이 마지막으로 접속한 시각을 기록한다. • 하나의 파일로 묶은 후 압축해서 airlover.tar.bz2라는 파일로 만든다. • airlover폴더를 지운다. • 실행하면 자동으로 압축이 풀리게 만든다. • c.f) /SPARCS/mail/aliases.d/sparcs2003

  20. Reference • http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html • Sh/Bash/Csh/Tcsh man pages

More Related