Shell programming: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== Overview ==
== Overview ==
리눅스 쉘 프로그래밍 정리
리눅스 쉘 프로그래밍 정리
== Special variables ==
쉘 프로그램에서는 미리 예약되어 있는 특수 변수들이 있다.
<pre>
$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
</pre>
'''$0''' : 현재 실행 중인 스크립트의 filename 을 지칭한다.
'''$n''' : 스크립트 실행시, 함께 넘겨진 인자를 순서대로 나타낸다.
'''$#''' : 스크립트 실행시, 함께 넘겨진 인자의 갯수를 나타낸다.
'''$*''' : 스크립트 실행시, 함께 넘겨진 모든 인자를 나타낸다. 만약 인자가 두개였다면, $* 는 $1 $2 와 같다.
'''$@''' : 스크립트 실행시, 함께 넘겨진 모든 인자를 나타낸다. 만약 인자가 두개였다면, $* 는 $1 $2 와 같다.
'''$?''' : 마지막으로 실행한 명령행의 결과값을 나타낸다.
'''$$''' : 현재 실행중인 쉘의 Process ID 를 나타낸다.
'''$!''' : 마지막으로 실행한 background command 의 Process ID 를 나타낸다.


== Statements ==
== Statements ==
Line 44: Line 82:
== See also ==
== See also ==
* https://wiki.kldp.org/wiki.php/DocbookSgml/Shell_Programming-TRANS - Shell 프로그래밍의 기본
* https://wiki.kldp.org/wiki.php/DocbookSgml/Shell_Programming-TRANS - Shell 프로그래밍의 기본
* http://codewiki.wikidot.com/shell-script:if-else -  If / Else Statements (Shell Scripting)


== References ==
== References ==

Revision as of 09:41, 8 September 2015

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 />