tobby48 7 лет назад
Родитель
Сommit
fced66c121

+ 8
- 0
src/kr/co/swh/lecture/shellscript/arithmetic.sh Просмотреть файл

@@ -0,0 +1,8 @@
1
+#!/bin/bash
2
+a=10
3
+b=$a+20
4
+echo $b
5
+c=`expr $a + 20`			# expr은 `으로 묶어서 표현
6
+echo $c
7
+d=`expr \( $a + 20 \) / 10 \* 2`	# 괄호, * 는 앞에 \를 붙인다.
8
+echo $d

+ 15
- 0
src/kr/co/swh/lecture/shellscript/case.sh Просмотреть файл

@@ -0,0 +1,15 @@
1
+#!/bin/bash
2
+case "$1" in
3
+	start)
4
+		echo "프로그램 시작";;
5
+	stop)
6
+		echo "프로그램 중지";;
7
+	restart)
8
+		echo "프로그램 재시작";;
9
+	y | Y | Yes | YES)
10
+		echo "예스";;
11
+	[nN]*)
12
+		echo "n/N으로 시작";;
13
+	*)
14
+		echo "기타 다른 명령";;
15
+esac

+ 4
- 0
src/kr/co/swh/lecture/shellscript/eval.sh Просмотреть файл

@@ -0,0 +1,4 @@
1
+#!/bin/bash
2
+a="ls -al"
3
+echo $a
4
+eval $a

+ 7
- 0
src/kr/co/swh/lecture/shellscript/ex-for.sh Просмотреть файл

@@ -0,0 +1,7 @@
1
+#!/bin/bash
2
+for name in `ls *.sh`
3
+do
4
+	echo "$name"
5
+	head -5 $name
6
+	echo "-----"
7
+done

+ 97
- 0
src/kr/co/swh/lecture/shellscript/example.sh Просмотреть файл

@@ -0,0 +1,97 @@
1
+#!/bin/bash
2
+
3
+BASE=/home/...	# 프로그램 루트경로
4
+
5
+LIB=$BASE/lib
6
+PID=$BASE/.pid
7
+PSEXE="/bin/ps"
8
+
9
+classpath()
10
+{
11
+	JARS=`ls $LIB/*.jar`
12
+	for jar in $JARS
13
+	do
14
+		cp=$cp:$jar
15
+	done
16
+} 
17
+classpath
18
+export CLASSPATH=.:$CLASSPATH:$cp
19
+
20
+checkRunning(){
21
+	if [ -f "$PID" ]; then
22
+		if  [ -z "`cat $PID`" ];then
23
+			echo "ERROR: Pidfile '$PID' exists but contains no pid"
24
+			return 2
25
+		fi
26
+		PID=`cat $PID | tail -1`
27
+		RET=`$PSEXE -p $PID|grep java`
28
+		if [ -n "$RET" ];then
29
+			return 0
30
+		else
31
+			return 1
32
+		fi
33
+	else
34
+		return 1
35
+	fi
36
+	return 1
37
+}
38
+
39
+
40
+invoke_start(){
41
+	checkRunning
42
+	retval=$?
43
+    if [ "$retval" -eq 0 ];then
44
+		PID=`cat $PID | tail -1`
45
+		echo "already running (pid '$PID')"
46
+		exit 0
47
+	else
48
+		exec java com.google.App &	# 프로그램 실행 (자바는 java 클래스파일)
49
+		PID=`ps -ef | grep App | head -n1 |  awk ' {print $2;} '`	# grep 다음에 프로그램 이름
50
+		echo ${PID} > ${PID}
51
+    fi
52
+}
53
+
54
+invoke_stop(){
55
+	checkRunning
56
+	retval=$?
57
+	if [ "$retval" -eq 0 ];then
58
+		PID=`cat $PID | tail -1`
59
+		kill -9 $PID
60
+	else
61
+		echo "already stop "
62
+	fi
63
+}
64
+
65
+invoke_status(){
66
+	checkRunning
67
+	retval=$?
68
+	if [ $retval -eq 0 ];then
69
+		PID=`cat $PID | tail -1`
70
+		echo "Program is running (pid '$PID')"
71
+		exit 0
72
+	fi
73
+	echo "Program not running"
74
+	exit 1
75
+}
76
+
77
+
78
+case "$1" in
79
+	'start')
80
+		invoke_start
81
+		;;
82
+
83
+	'stop')
84
+		invoke_stop
85
+		;;
86
+
87
+	'status')
88
+		invoke_status
89
+		;;
90
+
91
+	*)
92
+		echo "Usage: $0 { start | stop | status }"
93
+		exit 1
94
+		;;
95
+esac
96
+
97
+exit 0

+ 4
- 0
src/kr/co/swh/lecture/shellscript/export1.sh Просмотреть файл

@@ -0,0 +1,4 @@
1
+#!/bin/bash
2
+echo $a
3
+echo $b
4
+exit 0

+ 5
- 0
src/kr/co/swh/lecture/shellscript/export2.sh Просмотреть файл

@@ -0,0 +1,5 @@
1
+#!/bin/bash
2
+a="지역"
3
+export b="외부"
4
+sh export1.sh
5
+exit 0

+ 7
- 0
src/kr/co/swh/lecture/shellscript/file-operator.sh Просмотреть файл

@@ -0,0 +1,7 @@
1
+#!/bin/bash
2
+file=~/.profile
3
+if [ -f $fname ] && [ -s $fname ] ; then
4
+    tail -5 $file
5
+else
6
+    echo ".profile 파일이 없거나 비어있음"
7
+fi

+ 7
- 0
src/kr/co/swh/lecture/shellscript/for.sh Просмотреть файл

@@ -0,0 +1,7 @@
1
+#!/bin/bash
2
+sum=0
3
+for i in 1 2 3 4 5	# for((i=1;i<=5;i++)) 또는 for i in `seq 1 5`
4
+do
5
+	sum=`expr $sum + $i`
6
+done
7
+echo "결과: "$sum

+ 12
- 0
src/kr/co/swh/lecture/shellscript/function.sh Просмотреть файл

@@ -0,0 +1,12 @@
1
+#!/bin/bash
2
+print () {
3
+	echo "============="
4
+	return
5
+}
6
+sum () {
7
+	echo `expr $1 + $2`
8
+}
9
+print
10
+echo "$1+$2 계산"
11
+sum $1 $2
12
+print

+ 2
- 0
src/kr/co/swh/lecture/shellscript/hello.sh Просмотреть файл

@@ -0,0 +1,2 @@
1
+#!/bin/bash
2
+echo "hello world"

+ 5
- 0
src/kr/co/swh/lecture/shellscript/if1.sh Просмотреть файл

@@ -0,0 +1,5 @@
1
+#!/bin/bash
2
+if [ "swh" = "swh" ]
3
+then
4
+	echo "참입니다"
5
+fi

+ 8
- 0
src/kr/co/swh/lecture/shellscript/if2.sh Просмотреть файл

@@ -0,0 +1,8 @@
1
+#!/bin/bash
2
+if [ "swh" != "swh" ]
3
+then
4
+	echo "참"
5
+else
6
+	echo "거짓"
7
+
8
+fi

+ 7
- 0
src/kr/co/swh/lecture/shellscript/operator.sh Просмотреть файл

@@ -0,0 +1,7 @@
1
+#!/bin/bash
2
+if [ 1 -eq 2 ]
3
+then
4
+	echo "1과 2은 같다."
5
+else
6
+	echo "1과 2은 다르다."
7
+fi

+ 5
- 0
src/kr/co/swh/lecture/shellscript/parameter.sh Просмотреть файл

@@ -0,0 +1,5 @@
1
+#!/bin/bash
2
+echo "file : $0"
3
+echo "parameter1 : $1, parameter2 : $2"
4
+echo "parameters $*"
5
+

+ 8
- 0
src/kr/co/swh/lecture/shellscript/printf.sh Просмотреть файл

@@ -0,0 +1,8 @@
1
+#!/bin/bash
2
+a=100
3
+bar="=============================="
4
+title="리눅스 및 쉘 스크립트 역할"
5
+s1="계정, 방화벽 및 서버관리"
6
+s2="프로그램 실행 및 중지"
7
+printf "$bar\n$title\n$bar\n\t리눅스는 재미%5.2f점\n%s\n%s\n$bar" $a "$s1" "$s2"
8
+

+ 14
- 0
src/kr/co/swh/lecture/shellscript/variables.sh Просмотреть файл

@@ -0,0 +1,14 @@
1
+#!/bin/bash
2
+abc="SWH Academy"	# 변수 대입은 '=' 좌우여백에 공백이 없어야 함
3
+echo $abc
4
+echo "$abc"
5
+echo '$abc'
6
+echo \$abc
7
+echo 값 입력 :
8
+read abc
9
+echo '$abc' = $abc	# 변수 대입이 아님
10
+abc=$(ls *.sh)      	# $(명령) : 명령 실행 결과를 변수화
11
+def=`cat ~/.profile | tail -2`	# `명령`은 $(명령)과 동일
12
+echo $abc$def
13
+# 쉘 종료 후 결과값을 돌려받을 수 있음.(echo $?), 없으면 0
14
+exit 123

+ 5
- 0
src/kr/co/swh/lecture/shellscript/while.sh Просмотреть файл

@@ -0,0 +1,5 @@
1
+#!/bin/bash
2
+while [ 1 ]
3
+do
4
+	echo "swh"
5
+done