Shell programming

From 탱이의 잡동사니
Revision as of 09:41, 8 September 2015 by Pchero (talk | contribs)
Jump to navigation Jump to search

Overview

리눅스 쉘 프로그래밍 정리

Special variables

쉘 프로그램에서는 미리 예약되어 있는 특수 변수들이 있다.

$0 	The filename of the current script.

$n 	These variables correspond to the arguments with which a script was invoked. 
Here n is a positive decimal number corresponding to the position of an argument (the first argument is $1, the second argument is $2, and so on).

$# 	The number of arguments supplied to a script.

$* 	All the arguments are double quoted. If a script receives two arguments, $* is equivalent to $1 $2.

$@ 	All the arguments are individually double quoted. If a script receives two arguments, $@ is equivalent to $1 $2.

$? 	The exit status of the last command executed.

$$ 	The process number of the current shell. For shell scripts, this is the process ID under which they are executing.

$! 	The process number of the last background command

$0 : 현재 실행 중인 스크립트의 filename 을 지칭한다.

$n : 스크립트 실행시, 함께 넘겨진 인자를 순서대로 나타낸다.

$# : 스크립트 실행시, 함께 넘겨진 인자의 갯수를 나타낸다.

$* : 스크립트 실행시, 함께 넘겨진 모든 인자를 나타낸다. 만약 인자가 두개였다면, $* 는 $1 $2 와 같다.

$@ : 스크립트 실행시, 함께 넘겨진 모든 인자를 나타낸다. 만약 인자가 두개였다면, $* 는 $1 $2 와 같다.

$? : 마지막으로 실행한 명령행의 결과값을 나타낸다.

$$ : 현재 실행중인 쉘의 Process ID 를 나타낸다.

$! : 마지막으로 실행한 background command 의 Process ID 를 나타낸다.

Statements

for

<source lang=bash>

  1. !/bin/sh

for var in A B C do

   echo "var is $var"

done </source>

while

while 은 조건이 만족하는 동안 루프를 반복한다. <source lang=bash>

  1. !/bin/sh

a=0 while [ $a -lt 10 ] do

   a=`expr $a + 1`
   echo $a

done </source>

if

if 는 지정된 조건을 충족할 때만 실행된다. <source lang=bash>

  1. !/bin/sh

if [ "$#" -gt 0 ] then

   echo "There's Beans"

fi

if [ "$1" = "cool" ] then

   echo "Cool Beans"

fi </source>

See also

References

<references />