• Save
Airlover 20030324 1
Upcoming SlideShare
Loading in...5
×
 

Airlover 20030324 1

on

  • 1,232 views

 

Statistics

Views

Total Views
1,232
Views on SlideShare
1,232
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Airlover 20030324 1 Airlover 20030324 1 Presentation Transcript

  • 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.
  • What is shell?
    • Command / Interpreter
      • Bourn Shell
      • C Shell
      • Korn Shell
      • Bash
      • Tcsh
    Kernel Shell Program Program Program User
  • 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
  • Environment Variable.
    • PWD
      • Current working directory.
    • PATH
      • The search path.
    • PS1
      • The primary prompt string.
    • MAIL
      • Filename to check mail.
    Shell Var. Environ. Var. export - set - env
  • Standard input, output, error Program1 FD Program2 FD 1 - STDOUT 0 - STDIN 2 – STDERR : : : 1 - STDOUT 0 - STDIN 2 – STDERR : : :
  • Redirection & Pipelining < | > Etc.. >> << <<< 2>&1 2> &> … File File Program Program
  • Script Examples - Start #!/bin/sh mutt telnet ara telnet ska telnet pie
  • Script Examples(2) – Color Table #!/usr/local/bin/bash esc=&quot;33[&quot; echo -e &quot; 40 41 42 43 44 45 46 47&quot; for fore in 30 31 32 33 34 35 36 37; do line1=&quot;$fore &quot; line2=&quot; &quot; for back in 40 41 42 43 44 45 46 47; do line1=&quot;${line1}${esc}${back};${fore}m 보통 ${esc}0m &quot; line2=&quot;${line2}${esc}${back};${fore};1m 밝은 ${esc}0m &quot; done echo -e &quot;$line1 $line2&quot; done
  • 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 &quot;bu2.gif&quot; |tail +14 |tac |tail +11 |tac |sed -e 's/[phon[0-9]+.gif] //g' -e 's/[phon[0-9]+.gif]//g' |less -r
  • 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.
  • Shell script syntax - for
    • for name [ in word ] ; do list ; 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 . . . . . . . . . . . . . . . . #!/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;
  • Shell script syntax(2) - if
    • if list; then list; [ elif list; then list; ] ... [ else list; ] fi
    $ ./diff abc abc abc abc It’s same $ ./diff abcc abcd abcc Abcd It’s different #!/bin/sh echo $1; echo $2; if [ &quot;$1&quot; = &quot;$2&quot; ]; then echo &quot;It's same&quot;; else echo &quot;It's different&quot;; fi
  • Shell script syntax(3) – select
    • select name [ in word ] ; do list ; done
    1) Hello 2) Quit #? 1 Hello World #? 2 done #!/usr/local/bin/bash OPTIONS=&quot;Hello Quit&quot; select opt in $OPTIONS; do if [ &quot;$opt&quot; = &quot;Quit&quot; ]; then echo done exit elif [ &quot;$opt&quot; = &quot;Hello&quot; ]; then echo Hello World else clear echo bad option fi done
  • 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
  • Shell script syntax(5) – Etc.
    • while list; do list; done
    • until list; do list; done
    • [ function ] name () { list; }
  • 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
  • Making Shell
    • 2003 SP Seminar on summer vacation
      • For studying system programming.
      • For being a SPARCS man.
      • A flower of circle activation.
    • SP + ARCS = SP ARCS
  • Homework
    • airlover 라는 폴더를 만든다 .
    • 위에서 만든 폴더에 이름이 SPARCS 03 학번 회원들의 아이디인 파일을 만들고 그 회원이 마지막으로 접속한 시각을 기록한다 .
    • 하나의 파일로 묶은 후 압축해서 airlover.tar.bz2 라는 파일로 만든다 .
    • airlover 폴더를 지운다 .
    • 실행하면 자동으로 압축이 풀리게 만든다 .
    • c.f) /SPARCS/mail/aliases.d/sparcs2003
  • Reference
    • http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html
    • Sh/Bash/Csh/Tcsh man pages