제어문
case
#!/bin/bash
echo "###### httpd service script ######"
echo "start : s , stop : t , restart : r , status : u"
echo -n "원하는 작업을 선택하시오 : "
read sel
case "$sel" in
s)
echo "start service"
systemctl start httpd
;;
t)
echo "stop service"
systemctl stop httpd
;;
r)
echo "restart service"
systemctl restart httpd
;;
u)
echo "status service"
systemctl status httpd
;;
*)
echo "지정된 작업을 선택해주세요"
;;
esac
select
#!/bin/bash
PS3=" 메뉴 선택: "
select i in 'pwd' 'date' 'ls' 'exit'
do
$i
done
--실행
[root@localhost ~]# sh /root/select_01.sh
1) pwd
2) date
3) ls
4) exit
메뉴 선택: 1
/root
메뉴 선택: 2
2024. 03. 20. (수) 09:37:30 KST
메뉴 선택: 3
1.c if_digit.sh select_01.sh
1.sh if_file.sh t1.txt
a.out if_not.sh t2.txt
anaconda-ks.cfg if_or.sh t3.txt
case_01.sh if_string.sh test.txt
dir1 let.sh test01
dirl listvar.sh tmp.txt
dis.sh mysqldump_all_db.sql tmp1.txt
echo.sh mysqldump_db_table.sql 공개
err.txt mysqldump_db_table_row.sql 다운로드
err1.txt mysqldump_dump_db.sql 문서
error.txt mysqldump_naver_db.sql 바탕화면
expr.sh naver_db.sql 비디오
global_local.sh ok.txt 사진
hahaha.txt parameter.sh 서식
hello.txt pass 음악
hi.txt read.sh
if_and.sh read_let.sh
메뉴 선택: 4
shell script 작성 실습
#!/bin/bash
echo "====== 사칙연산 프로그램 ======"
echo "1) 더하기"
echo "2) 빼기"
echo "3) 곱하기"
echo "4) 나누기"
echo -n "메뉴 선택: "
read sel
if [[ "$sel" -eq 5 ]]; then
echo -e "잘못된 메뉴를 선택하셨습니다.\n프로그램을 종료합니다."
exit 0
elif [[ "$sel" -lt 1 || "$sel" -gt 5 ]]; then
echo -e "잘못된 선택입니다.\n프로그램을 종료합니다."
exit 1
else
echo -n "숫자1 입력: "
read num1
echo -n "숫자2 입력: "
read num2
case "$sel" in
1)
let "sum = num1 + num2"
echo "덧셈 결과: $sum"
;;
2)
let "sub = num1 - num2"
echo "뺄셈 결과: $sub"
;;
3)
let "mul = num1 * num2"
echo "곱셈 결과: $mul"
;;
4)
if [[ "$num2" -eq 0 ]]; then
echo "0으로 나눌 수 없습니다."
else
let "div = num1 / num2"
echo "나눗셈 결과: $div"
fi
;;
esac
fi
--결과 확인
-더하기
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 1
숫자1 입력: 8
숫자2 입력: 9
덧셈 결과: 17
-빼기
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 2
숫자1 입력: 8
숫자2 입력: 9
뺄셈 결과: -1
-곱하기
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 3
숫자1 입력: 8
숫자2 입력: 9
곱셈 결과: 72
-나누기
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 4
숫자1 입력: 90
숫자2 입력: 2
나눗셈 결과: 45
-잘못된 메뉴 선택
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 5
잘못된 메뉴를 선택하셨습니다.
프로그램을 종료합니다.
-종료 메뉴까지 5번으로 설정하였으나 다른 문자로 선택했을경우
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 6
잘못된 선택입니다.
프로그램을 종료합니다.
-0으로 못나누게 설정한거 확인
[root@localhost ~]# sh /root/calc.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
메뉴 선택: 4
숫자1 입력: 2
숫자2 입력: 0
0으로 나눌 수 없습니다.
for
#!/bin/bash
#dir=/var/log
#backup_dir=/tmp1
echo -n "원본 디렉터리 입력 : ";read dir
echo -n "복사할 디렉터리 입력 : ";read backup_dir
for file in $(ls $dir)
do
if [ -f $dir/$file ]
then
cp $dir/$file $backup_dir/$file
elif [ -d $dir/$file ]
then
cp -r $dir/$file $backup_dir/$file
fi
done
--실행 후 확인
[root@localhost ~]# sh for_01.sh
원본 디렉터리 입력 : /var/log
복사할 디렉터리 입력 : /tmp1
[root@localhost ~]# ls /tmp1/
README gdm tallylog
anaconda hawkey.log tuned
audit httpd vmware-network.1.log
boot.log kdump.log vmware-network.2.log
boot.log-20240318 lastlog vmware-network.3.log
boot.log-20240319 maillog vmware-network.4.log
boot.log-20240320 mariadb vmware-network.5.log
btmp messages vmware-network.6.log
chrony private vmware-network.log
cron qemu-ga vmware-vgauthsvc.log.0
cups samba vmware-vmsvc-root.log
dnf.librepo.log secure vmware-vmtoolsd-root.log
dnf.log speech-dispatcher vmware-vmusr-root.log
dnf.rpm.log spooler wtmp
firewalld sssd
--복사할 디렉터리 삭제 후 실행
[root@localhost ~]# rm -rf /tmp1
[root@localhost ~]# ls -ld /tmp1
ls: cannot access '/tmp1': 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]# sh for_01.sh
원본 디렉터리 입력 : /var/log
복사할 디렉터리 입력 : /tmp1
cp: cannot create regular file '/tmp1/README': 그런 파일이나 디렉터리가 없습니다
cp: '/tmp1/anaconda' 디렉토리를 만들 수 없습니다: 그런 파일이나 디렉터리가 없습니다
cp: '/tmp1/audit' 디렉토리를 만들 수 없습니다: 그런 파일이나 디렉터리가 없습니다
~
--디렉터리 없으면 만들 수 있도록
#!/bin/bash
#dir=/var/log
#backup_dir=/tmp1
echo -n "원본 디렉터리 입력 : ";read dir
echo -n "복사할 디렉터리 입력 : ";read backup_dir
#복사본 디렉터리가 없는 경우 > 생성 > 777 퍼미션 부여
if [ ! -e $backup_dir ]
then
mkdir $backup_dir
chmod 777 $backup_dir
fi
#원본 파일/디렉터리를 복사한다
for file in $(ls $dir)
do
if [ -f $dir/$file ]
then
cp $dir/$file $backup_dir/$file
elif [ -d $dir/$file ]
then
cp -r $dir/$file $backup_dir/$file
fi
done
--실행
[root@localhost ~]# sh for_01.sh
원본 디렉터리 입력 : /var/log
복사할 디렉터리 입력 : /tmp1
[root@localhost ~]# ls /tmp1
README gdm tallylog
anaconda hawkey.log tuned
audit httpd vmware-network.1.log
boot.log kdump.log vmware-network.2.log
boot.log-20240318 lastlog vmware-network.3.log
boot.log-20240319 maillog vmware-network.4.log
boot.log-20240320 mariadb vmware-network.5.log
btmp messages vmware-network.6.log
chrony private vmware-network.log
cron qemu-ga vmware-vgauthsvc.log.0
cups samba vmware-vmsvc-root.log
dnf.librepo.log secure vmware-vmtoolsd-root.log
dnf.log speech-dispatcher vmware-vmusr-root.log
dnf.rpm.log spooler wtmp
firewalld sssd
--1부터 10까지의 누적합을 계산
#!/bin/bash
# 1부터 10까지의 누적합을 계산
# i, 누적합sum
sum=0
for i in 1 2 3 4 5 6 7 8 9 10
do
let "sum=$sum+$i"
echo "1=$i,sum=$sum"
done
--실행
[root@localhost ~]# sh /root/for_03.sh
1=1,sum=1
1=2,sum=3
1=3,sum=6
1=4,sum=10
1=5,sum=15
1=6,sum=21
1=7,sum=28
1=8,sum=36
1=9,sum=45
1=10,sum=55
--list 변수
#!/bin/bash
# 1부터 10까지의 누적합을 계산
# i, 누적합sum
sum=0
#for i in 1 2 3 4 5 6 7 8 9 10
listvar=(1 2 3 4 5 6 7 8 9 10)
for i in ${listvar[*]}
do
let "sum=$sum+$i"
echo "1=$i,sum=$sum"
done
--실행
[root@localhost ~]# sh /root/for_03.sh
1=1,sum=1
1=2,sum=3
1=3,sum=6
1=4,sum=10
1=5,sum=15
1=6,sum=21
1=7,sum=28
1=8,sum=36
1=9,sum=45
1=10,sum=55
--다른방식
#!/bin/bash
# 1부터 10까지의 누적합을 계산
# i, 누적합sum
sum=0
#for i in 1 2 3 4 5 6 7 8 9 10
#listvar=(1 2 3 4 5 6 7 8 9 10)
#for i in ${listvar[*]}
for ((i=1 ; i<=10 ; i++)) #초기값 ; 종료값 ; 증감값
do
let "sum=$sum+$i"
echo "1=$i,sum=$sum"
done
--실행
[root@localhost ~]# sh /root/for_03.sh
1=1,sum=1
1=2,sum=3
1=3,sum=6
1=4,sum=10
1=5,sum=15
1=6,sum=21
1=7,sum=28
1=8,sum=36
1=9,sum=45
1=10,sum=55
for문 과제
#!/bin/bash
#특정 숫자를 입력받아 해당 숫자 범위안의 짝수의 합만 산출
#-짝수 : 2로 나눈 나머지가 0인것
#ex) let "num=$i%2", num=0이면 짝수
echo -n "숫자 입력: "
read upper_limit
for ((i=1; i<=upper_limit; i++));
do
let "num=$i%2"
if [ $num -eq 0 ];then
echo "$i 은(는) 짝수"
fi
if ((i % 2 == 0)); then
let "sum+=i"
fi
done
echo "$upper_limit의 짝수 합: $sum"
--실행
[root@localhost ~]# sh /root/for_04.sh
숫자 입력: 10
2 은(는) 짝수
4 은(는) 짝수
6 은(는) 짝수
8 은(는) 짝수
10 은(는) 짝수
10의 짝수 합: 30
--더 간단하게
echo -n "숫자 입력: "
read even_number
sum=0 # 짝수의 합을 저장할 변수 초기화
for ((i=1; i<=even_number; i++)); do
if ((i % 2 == 0)); then
let "sum+=i"
echo "$i 은(는) 짝수"
fi
done
echo "$even_number의 짝수 합: $sum"
과제 주제는 특정 숫자를 입력받아 해당 숫자 범위안의 짝수의 합만 산출이라는 주제였으나,
저는 짝수가 출력되는것도 확인하고싶어서 추가로 짝수를 확인하는 명령어를 추가했습니다.
--강사님 script
#!/bin/bash
#특정 숫자를 입력받아 해당 숫자 범위안의 짝수의 합만 산출
#-짝수 : 2로 나눈 나머지가 0인것
#ex) let "num=$i%2", num=0이면 짝수
echo -n "숫자 입력: "
read even_number
for ((i=1; i<=even_number; i++));
do
let "num=$i%2"
if [ $num -eq 0 ];then
#echo "$i 은(는) 짝수"
let "sum+=i"
echo "현재 증가값 : $i , 현재 누적합: $sum"
fi
done
--실행
[root@localhost ~]# sh /root/for_04.sh
숫자 입력: 20
현재 증가값 : 2 , 현재 누적합: 2
현재 증가값 : 4 , 현재 누적합: 6
현재 증가값 : 6 , 현재 누적합: 12
현재 증가값 : 8 , 현재 누적합: 20
현재 증가값 : 10 , 현재 누적합: 30
현재 증가값 : 12 , 현재 누적합: 42
현재 증가값 : 14 , 현재 누적합: 56
현재 증가값 : 16 , 현재 누적합: 72
현재 증가값 : 18 , 현재 누적합: 90
현재 증가값 : 20 , 현재 누적합: 110
이중for문
#!/bin/bash
for i in 1 2 3
do
echo $i
for j in 11 12 13
do
echo "$i:$j"
done
done
--실행
[root@localhost ~]# sh /root/for_05.sh
1
1:11
1:12
1:13
2
2:11
2:12
2:13
3
3:11
3:12
3:13
구구단 출력
#!/bin/bash
for ((i=2 ; i<=9 ; i++))
do
for ((j=2 ; j<=9 ; j++))
do
let "gugu=$i*$j"
echo "$i X $j = $gugu"
done
done
--실행
[root@localhost ~]# sh /root/gugudan_01.sh
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
~~
9 X 2 = 18
9 X 3 = 27
9 X 4 = 36
9 X 5 = 45
9 X 6 = 54
9 X 7 = 63
9 X 8 = 72
9 X 9 = 81
--각 단 별로 세로 출력
#!/bin/bash
echo -n "단수를 입력하세요: ";read dan
for ((i=2 ; i<=$dan ; i++))
do
for j in 1 2 3 4 5 6 7 8 9
do
let "gugu=$i*$j"
echo -ne "$i X $j = $gugu\t"
done
echo -e "\n"
done
--실행
[root@localhost ~]# sh /root/gugudan_01.sh
단수를 입력하세요: 9
2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18
3 X 1 = 3 3 X 2 = 6 3 X 3 = 9 3 X 4 = 12 3 X 5 = 15 3 X 6 = 18 3 X 7 = 21 3 X 8 = 24 3 X 9 = 27
4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 4 X 4 = 16 4 X 5 = 20 4 X 6 = 24 4 X 7 = 28 4 X 8 = 32 4 X 9 = 36
5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25 5 X 6 = 30 5 X 7 = 35 5 X 8 = 40 5 X 9 = 45
6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36 6 X 7 = 42 6 X 8 = 48 6 X 9 = 54
7 X 1 = 7 7 X 2 = 14 7 X 3 = 21 7 X 4 = 28 7 X 5 = 35 7 X 6 = 42 7 X 7 = 49 7 X 8 = 56 7 X 9 = 63
8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64 8 X 9 = 72
9 X 1 = 9 9 X 2 = 18 9 X 3 = 27 9 X 4 = 36 9 X 5 = 45 9 X 6 = 54 9 X 7 = 63 9 X 8 = 72 9 X 9 = 81
--짝수 단만 출력
#!/bin/bash
for ((i=2 ; i<=9 ; i++))
do
let "num=$i%2"
if [ $num -eq 0 ];then
echo "##### 단 시작 #####"
for ((j=2 ; j<=9 ; j++))
do
let "gugu=$i*$j"
echo "$i X $j = $gugu"
done
echo -e "\n"
fi
done
--실행
[root@localhost ~]# sh /root/gugudan_01.sh
##### 단 시작 #####
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
##### 단 시작 #####
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16
4 X 5 = 20
4 X 6 = 24
4 X 7 = 28
4 X 8 = 32
4 X 9 = 36
##### 단 시작 #####
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54
##### 단 시작 #####
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
while 문
#!/bin/bash
# while : 조건에 맞으면 계속 실행
# 제시하는 숫자(i)가 비교하려는 숫자(j)보다 작으면 계속 출력(해당 숫자가 1씩 증가하여 5가 될 때 까지)
i=1
j=5
while [ $i -lt $j ]
do
echo $i
let "i++"
sleep 5
done
--실행
#!/bin/bash
# countdown : 0이 되면 실행 하지 않을 것
count=10
until [ $count -lt 0 ]
do
echo "count $count"
sleep 1
let "count=$count-1"
done
--실행
[root@localhost ~]# sh /root/while_02.sh
count 10
count 9
count 8
count 7
count 6
count 5
count 4
count 3
count 2
count 1
count 0
#!/bin/bash
#while 문을 for 문 처럼
#초기값 ; 종료값 ; 증가값
#count가 1씩 증가하면서 maxcount가 될 때
count=1
echo -n "반복할 횟수를 입력하세요: ";read maxcount
while [$count -le $maxcount]
do
echo "$count 번째 반복"
let "count=$count+1"
sleep 2
done
echo "$maxcount 번째 반복"
--실행
[root@localhost ~]# sh /root/while_02.sh
반복할 횟수를 입력하세요: 10
1 번째 반복
2 번째 반복
3 번째 반복
4 번째 반복
5 번째 반복
6 번째 반복
7 번째 반복
8 번째 반복
9 번째 반복
10 번째 반복
while 문 예제
#!/bin/bash
# 두 개의 변수를 n1,n2를 입력 받음
# 입력받은 두개의 변수 n1,n2 사이의 누적합 sum 을 구한다.
#ex) n1=1 , n2=10 -> sum=55
# 테스트 할때는 n2 가 n1 보다 큰 숫자를 입력할 것
# while 문 사용 , 조건 : -le
sum=0
echo -n "n1 입력: ";read n1
echo -n "n2 입력: ";read n2
while [ $n1 -le $n2 ]
do
sum=$(($sum + $n1)) # n1을 sum에 더함
n1=$(($n1 + 1)) # n1의 값을 1 증가
done
echo "$n1 부터 $n2 까지의 총합은 $sum 입니다."
--실행
[root@localhost ~]# sh /root/while_03.sh
n1 입력: 1
n2 입력: 10
11 부터 10 까지의 총합은 55 입니다.
#!/bin/bash
#!/bin/bash
# 두 개의 변수를 n1,n2를 입력 받음
# 입력받은 두개의 변수 n1,n2 사이의 누적합 sum 을 구한다.
#ex) n1=1 , n2=10 -> sum=55
# 테스트 할 때는 n2 가 n1 보다 큰 숫자를 입력할 것
# 테스트 할 때는 n2 가 n1 보다 큰 숫자를 입력할 것
# while 문 사용 , 조건 : -le
sum=0
echo -n "n1 입력: ";read n1
echo -n "n2 입력: ";read n2
if
while [ $n1 -le $n2 ]
do
sum=$(($sum + $n1)) # n1을 sum에 더함
n1=$(($n1 + 1)) # n1의 값을 1 증가
else
while [ $n1 -ge $n2 ]
do
sum=$(($sum + $n2)) # n1을 sum에 더함
n2=$(($n2 + 1)) # n1의 값을 1 증가
done
done
fi
echo "$n1 부터 $n2 까지의 총합은 $sum 입니다."
--실행
[root@localhost ~]# sh /root/while_03.sh
n1 입력: 1
n2 입력: 10
11 부터 10 까지의 총합은 55 입니다.
[root@localhost ~]# sh /root/while_04.sh
n1 입력: 10
n2 입력: 1
11 부터 10 까지의 총합은 55 입니다.
무한loop
--무한루프 개념
#!/bin/bash
count=0
while true -- [ 1 ]을 쓸 수도 있으나 확실하게 true를 쓰는것이 좋다
do
let "count=$count+1"
echo "$count 번째 반복"
done
--실행시 멈추지 않음
[root@localhost ~]# sh /root/while_loop.sh
1 번째 반복
2 번째 반복
3 번째 반복
4 번째 반복
5 번째 반복
6 번째 반복
7 번째 반복
8 번째 반복
9 번째 반복
10 번째 반복
11 번째 반복
~~
--무한루프 제어
#!/bin/bash
#무한루프 제어
echo -n "반복할 횟수를 입력하세요 : "
read maxcount
# 횟수 초기화(횟수 계산의 시작점)
count=0
while [ 1 ]
do
let "count=$count+1"
echo "$count 번째 반복"
if [ $count -eq $maxcount ];then
echo "프로그램 종료"
exit
fi
done
--실행
[root@localhost ~]# sh /root/while_loop.sh
반복할 횟수를 입력하세요 : 10
1 번째 반복
2 번째 반복
3 번째 반복
4 번째 반복
5 번째 반복
6 번째 반복
7 번째 반복
8 번째 반복
9 번째 반복
10 번째 반복
프로그램 종료
#error > 0, success = 0
[root@localhost ~]# echo "hello"
hello
[root@localhost ~]# echo $?
0
[root@localhost ~]# aaaa
bash: aaaa: command not found...
[root@localhost ~]# echo $?
127
error > 0, success = 0
#!/bin/bash
echo " hello"
exit 100
--실행
[root@localhost ~]# sh /root/code.sh
hello
[root@localhost ~]# echo $?
100
#!/bin/bash
#read를 이용하여 변수 입력
read -p "input y or n : "
# 255 이하
yes=200
no=210
error=220
if [[ "$REPLY" = "y" || "$REPLY" = "Y" ]] # 입력받는 문자가 y
then
exit $yes
elif [[ "$REPLY" = "n" || "$REPLY" = "N" ]] # 입력받는 문자가 n
then
exit $no
else # y 도 n 도 아닌 경우
exit $error
fi
--실행
[root@localhost ~]# sh code.sh
input y or n : y
[root@localhost ~]# echo $?
200
[root@localhost ~]# sh code.sh
input y or n : n
[root@localhost ~]# echo $?
210
[root@localhost ~]# sh code.sh
input y or n : e
[root@localhost ~]# echo $?
220
[root@localhost ~]# echo $?
0
#!/bin/bash
while true
do
--무한루프 계산기
echo "====== 사칙연산 프로그램 ======"
echo "1) 더하기"
echo "2) 빼기"
echo "3) 곱하기"
echo "4) 나누기"
echo -n "메뉴 선택(1~4): "
read sel
echo -n "숫자1 입력: "
read num1
echo -n "숫자2 입력: "
read num2
case "$sel" in
1)
let "sum = num1 + num2"
echo "덧셈 결과: $sum"
;;
2)
let "sub = num1 - num2"
echo "뺄셈 결과: $sub"
;;
3)
let "mul = num1 * num2"
echo "곱셈 결과: $mul"
;;
4)
if [[ "$num2" -eq 0 ]]; then
echo "0으로 나눌 수 없습니다."
else
let "div = num1 / num2"
echo "나눗셈 결과: $div"
fi
;;
esac
done
--while loop로 제어 후 종료할때 숫자 입력 안해도되도록
#!/bin/bash
while read A B C ETC
do
echo "$A-$B-$C-$ETC"
done < /root/test.txt
--실행
[root@localhost ~]# sh /root/readfile_loop.sh
a-1-AAA-111
b-2-BBB-222
#!/bin/bash
#인자를 부여 , 실행된 스크립트명
echo $0
echo $1
echo $2
while read A B C ETC
do
echo "$A-$B-$C-$ETC"
done < /root/test.txt
--실행
[root@localhost ~]# sh /root/readfile_loop.sh
/root/readfile_loop.sh
a-1-AAA-111
b-2-BBB-222
[root@localhost ~]# cp /root/test.txt /root/t.txt
[root@localhost ~]# vi /root/t.txt
#!/bin/bash
#인자를 부여 , 실행된 스크립트명
echo $0
echo $1
echo $2
while read A B C ETC
do
echo "$A-$B-$C-$ETC"
done < $1
--실행
[root@localhost ~]# sh /root/readfile_loop.sh /root/t.txt
/root/readfile_loop.sh
/root/t.txt
a-1-AAA-111
b-2-BBB-222
c-3-CCC-333
'IaC Application > SHELL' 카테고리의 다른 글
정규표현식 - grep (0) | 2024.03.21 |
---|---|
함수 (0) | 2024.03.21 |