일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 라우터
- VLAN
- 네트워크관리사
- 자바
- javaee
- 정보처리기사
- Java
- cisco packet
- sql
- NCS
- jsp
- 데이터베이스
- autoset
- rinux
- w3school
- 원형그래프
- Cisco
- 오라클
- ciscopacket
- 참조타입
- php
- 이것이 자바다
- jsp연결
- 정처기필기
- ospf
- Oracle
- 버추얼머신
- 네트워크
- 리눅스
- html
- Today
- Total
기록해! 정리해!
Rinux (9) -쉘 스크립트 출력(echo) 본문
06/08
리눅스 쉘 프로그램
제어 : 조건문을 만들 수 있다는 뜻
º 프로그램에서 변수를 사용하는 방법
1. 형을 선언하고 변수 사용하기
: int k , String k ... 자바
2. 값이 들어오면 변수의 형이 정의되는 방법
: k=10 , k= '우리' ... 자바스크립트, 리눅스 쉘
º 99, 01022223333
: 숫자 , 문자 (앞에 0이 있고 이걸로 연산하지는 않으니까)
º Shell 스크립트 파일 만들기
1. 변수는 대소문자를 구분한다.
2. 변수에서 문자 숫자 구분은 없다.
3. 숫자 A=10, 문자 A=“10”
4. 지정된 변수를 사용 할때는 $ 기호를 사용
예) os = linux
echo $os
5. read 문 – 사용자의 표준입력을 받아 들여
변수로 사용할때 사용.
예제)
#! /bin/bash --주석이 아니라 선언문
echo -n "input name: " --출력해라
read name --값 입력받아라
echo $name
[root@localhost ~]# ls -l
-rw-r--r-- 1 root root 61 6월 8 10:09 test.sh
[root@localhost ~]# chmod +x test.sh --퍼미션 변경
[root@localhost ~]# ls -l
-rwxr-xr-x 1 root root 61 6월 8 10:09 test.sh
[root@localhost ~]# ./test.sh --sh test.sh 안쓰고 ./ 만 써도 실행가능
input name:
º
º number.sh
#! /bin/bash
if [ 4 -gt 9 ] -- -gt= > (띄어쓰기 유의)
then
echo " A " --참일 경우 출력
else
echo " B " --거짓일 경우 출력
fi --if의 반대로
º String.sh
#! /bin/bash
if [ aaa = "aaa" ]
then
echo "="
else
echo "!="
fi
º 백그라운드 : 눈에 안보이는 거
포그라운드 : 눈에 보이는거
º 숫자계산
expr : 숫자 계산
+ : 더하기, - : 빼기 , / 나누기 , % 나머지
* : 곱하기 (‘\*’ 로 사용한다.)
expr 로 지정하는 경우 역따옴표 ` ` 를 사용.
연산자 * 와 괄호 앞에는 역슬래시(\) 를 같이 사용
연산자와 숫자, 변수, 기호 사이에는 Space 가 존재해야 한다
예제 1)
#! /bin/bash
num=`expr 2 + 10 - 4`
echo $num
예제 2)
num=`expr \( 2 + 10 \) \* 4`
echo $num
예제 3) 1-10까지 출력
#! /bin/bash
echo -n "aaa:"
read A
B=11
while [ $A -lt $B ] -- -lt = <
do
echo $A
A=`expr $A + 1`
done
echo "end"
예제 3) 1-10까지 출력, 누적합 나타내기
#! /bin/bash
echo -n "aaa:"
read A
B=11
while [ $A -lt $B ] -- -lt = <
do
echo $A
s=`expr $s + $A`
A=`expr $A + 1`
done
echo "end"
echo " ===== "
echo "누적합:"$s
예제 4) if문을 이용해 홀수 합만 구해보기
#! /bin/bash
echo -n "aaa:"
read A
B=11
while [ $A -lt $B ]
do
if [ `expr $A % 2` -eq 1 ]
then
echo $A
s=`expr $s + $A`
fi
A=`expr $A + 1`
done
echo "end"
echo "======="
echo "누적합:"$s
예제 5)
#! /bin/bash
echo " end ^^ "
echo " end ^^ "
echo " end ^^ "
echo " end ^^ "
예제 6) 당겨쓰기
#! /bin/bash
echo -n "1"
echo -n "2"
echo -n "3"
echo "4"
예제 7)
#! /bin/bash
echo -n "Name: "
read name
echo " MY NAME IS $name ^^"
º if문은 항상 then
while문은 항상 do done
for문은 항상 do done
예제 8)
#! /bin/bash
read AA
if [ $AA -gt 0 ]
then
echo "++++"
else
echo "----"
fi
º 관계연산자
: 조건문 등에서 관계 연산자 and 나 or 등이
있는 쉘 스크립트를 작성할 때 이들을 매우 유용
하게 사용할 수 있다.
-a : and , -o : or
모두 다 참 여러개 중 하나 이상만 참이어도 참
예제 9)
#! /bin/bash
echo -n "input number 7, 8: "
read _num
if [ \( $_num -lt 7 \) -o \( $_num -gt 8 \) ] -- <, >
then
echo "7, 8<--- input number(bed "
fi
if [ $_num -eq 7 ]
then
echo "input number : 7 "
fi
if [ $_num -eq 8 ]
then
echo "input number : 8 "
fi
º for 구문
: 괄호 2개를 씀
예제 10)
#! /bin/bash
for (( i=1; i <=10; i++)) --초기값, 조건 , 증감
do
echo $i
done
예제 11) 1, 2,...10 출력해보기
#! /bin/bash
for (( i=1; i<=10; i++))
do
if [ $i -eq 10 ]
then
echo "$i"
else
echo -n "$i, "
fi
done
예제 12)
#! /bin/bash
for i in 1 2 3 4 5
do
echo $i
done
º seq
º 중첩 for 문
#! /bin/bash
for i in `seq 1 3`
do
for j in `seq 4 6`
do
A=`expr $i + $j`
echo $A
done
done
예제 13) 구구단 3단 출력해보기
#! /bin/bash/
for i in `seq 9`
do
value=`expr $i \* 3 `
echo " 3 X $i = $value "
done
예제 14) 구구단 가로로 숫자열맞춰서 출력해보기 (for 구문사용)
for i in `seq 9`
do
for dan in `seq 2 9`
do
value=`expr $i \* $dan `
if [ $value -lt 10 ]
then
echo -n "$dan x $i = 0$value "
else
echo -n "$dan x $i = $value "
fi
done
echo " "
done
예제 15) while 구문써서 구구단 출력
#! /bin/bash/
for i in `seq 9`
do
dan=2 --while 구문에는 꼭 초기값 필요
while [ $dan -lt 10 ]
do
value=`expr $i \* $dan `
if [ $value -lt 10 ]
then
echo -n "$dan x $i = 0$value "
else
echo -n "$dan x $i = $value "
fi
dan=`expr $dan + 1 ` --있어야 무한루프 돌지 않음
done
echo " "
done
예제 16) 2중while 구문써서 구구단 출력
! /bin/bash/
i=1
while [ $i -lt 10 ]
do
dan=2
while [ $dan -lt 10 ]
do
value=`expr $i \* $dan `
if [ $value -lt 10 ]
then
echo -n "$dan x $i = 0$value "
else
echo -n "$dan x $i = $value "
fi
dan=`expr $dan + 1 `
done
echo " "
i=`expr $i + 1 `
done
예제 17) 구구단 3단, 7단 나타내기
#! /bin/bash/
i=1
while [ $i -lt 10 ]
do
dan=2
while [ $dan -lt 10 ]
do
if [ \( $dan -eq 3 \) -o \( $dan -eq 7 \) ]
then
value=`expr $i \* $dan `
if [ $value -lt 10 ]
then
echo -n "$dan x $i = 0$value "
else
echo -n "$dan x $i = $value "
fi
fi
dan=`expr $dan + 1 `
done
echo " "
i=`expr $i + 1 `
done
º until 문 ( while의 반대 동작)
º case 구문
예제 18)
#! /bin/bash/
echo -n " 당신의 직업은 리눅스 엔지니어입니까 (Y|N)" -- |(파이프라인) = or연산
read _job
case "$_job" in
y|Y)
echo " 당신의 직업은 리눅스 엔지니어입니다."
exit;;
n|N)
echo " 당신의 직업은 모르겠군요."
exit;;
*)
echo "잘못입력하였습니다!!"
exit;;
esac
예제 19)
#! /bin/bash/
echo -n "
[1]start [2]stop [3]restart"
read _job
case "$_job" in
1)
systemctl start httpd
ps aux | grep 'httpd' | grep -v grep
exit ;;
2)
systemctl stop httpd
ps aux | grep 'httpd' | grep -v grep
exit ;;
3)
systemctl restart httpd
ps aux | grep 'httpd' | grep -v grep
exit;;
*)
echo " " ;;
esac
예제 20) clear
#! /bin/bash/
echo -n "
[1]start [2]stop [3]restart"
read _job
case "$_job" in
1)
systemctl start httpd
clear
ps aux | grep 'httpd' | grep -v grep
exit ;;
2)
systemctl stop httpd
claer
ps aux | grep 'httpd' | grep -v grep
exit ;;
3)
systemctl restart httpd
clear
ps aux | grep 'httpd' | grep -v grep
exit;;
*)
echo "1, 2, 3 번 중에 선택하시오 " ;;
esac
'Rinux' 카테고리의 다른 글
Rinux (예제 4) (0) | 2022.06.09 |
---|---|
Rinux (10) -빈 파일, 계정 생성 (0) | 2022.06.08 |
Rinux (8)- 그누보드 (0) | 2022.06.07 |
Rinux (7) (0) | 2022.06.07 |
Rinux 예제(3) (0) | 2022.06.07 |