- 2024.05.27.월.보안 day372024년 05월 27일 12시 46분 11초에 업로드 된 글입니다.작성자: 202401to07
쉘 스크립트
쉘스크립트
**주의사항**
1. if 가 시작되면 fi 로 끝난다. (ex case esac )
2. $(명령어) 는 출력 내용이다.
3. echo 는 출력이다. (printf와 같다)
4. then 상황 또는 조건을 이야기한다.
5. $(test)와 [ ] 같은 의미이다.
6. [ 안의 내용 ] 괄호 안에는 한칸씩 띄어준다.-e 파일./ 디렉토리 존재
-f 파일 존재
-d 디렉토리 존재
-s 심볼릭 링크 존재
vi if.sh
#!/bin/bash
if $(test -e /test/a/222); then : test안에 test/a/222가 존재하면
cp -a /test/a/222 ./ : 복사
echo "복사끝!! 완료!!"
else
echo "파일읍어 다시~"
exit
fi
vi if2.sh
#!/bin/bash
if [ -e /test/sevas/love ]; then : test/sevas/love가 존재하면
cp -a /test/sevas/love ./
echo "참잘하셨어요"
else
echo "다시 시도하세요"
exit
fi
비교 연산
#le 작거나 같을경우
#ge 크거나 같을경우
#eq 같을경우
#lt 작을경우
#gt 클경우
#ne 다를경우
++ 표현은 $(($A+1)) 도 가능vi while1.sh
#!/bin/bash
if [ -d /test/sevas/start ]; then
x=0;
while [ "$x" -le 10 ]; do
echo "나의 핵꿀밤을 받아라~!"
sleep 2
echo " $x 대 아얏~!"
#x=$(expr $x + 1)
x=$((x+1))
done
sleep 3
echo "엉엉엉 ㅠㅠ"
else
echo " 조건을 만족하세요"
exit
fi
vi until.sh
#!/bin/bash
if [ -s /test/sevas2/111 ] && [ -f /test/sevas2/111 ]; then
count=0;
until [ $count -ge 4 ];
do
echo "꿀밤 때리기 이어서~"
sleep 1
echo "$count회 공격으로 $count 데미지를 입었습니다."
count=$((count+1))
done
sleep 3
echo "적이 소멸했습니다."
else
echo "조건을 만족하세요"
exit
fi
전설의 포켓몬 SEVAS를 만났습니다.
주인공 korea의 공격은 때릴수록 +1 씩 쎄집니다
SEVAS의 HP는 40입니다.
3부터 시작해서 공격력이 1씩 증가
SEVAS HP가 0 과 같거나 작을경우 종료korea=3;
sevas=40;
while [ $sevas -gt 0 ]; do
echo "공격력=$korea"
sevas=$(($sevas-$korea))
korea=$(($korea+1))
echo "HP=$sevas"
done
echo "끝 $sevas"
이제 랜덤
랜덤값
echo $((RANDOM%11)) 0에서부터 11개까지 즉 0~10
echo $((RANDOM%10 + 1)) 1 10개 까지[root@sevas10 shell]# echo "hi " = printf
hi
[root@sevas10 shell]# echo -n "hi " =print
hi [root@sevas10 shell]#
vi read.sh
#!/bin/bash
echo -n "사용하고 싶은 글을 쓰세요: "
read a
echo "당신이 쓰신 글은 : [ $a ]입니다"
문제) 다음중 카드 뽑기 프로그램을 만들어서 3성 4성 5성을 뽑아보세요.
시작시에 시작할건지 거절할건지 정할수 있음
확률) 90% 3성 9% 4성 1% 5성#!/bin/bash
while :
do
echo -n "카드를 뽑아 보시겠습니까? (y/n) "
read a
R=$(($RANDOM%100))
clear
if [ "$a" = y ]; then
echo "당신이 카드를 뽑습니다"
if [ $R == 0 ]; then
sleep 1
echo "오오옷!!!"
sleep 1
echo "으아아아!!!"
sleep 1
echo "($R) 황금빛 광채가 쏟아지며 5성카드가 나왔습니다"
elif (($R > 0)) && (($R <= 10)); then
sleep 1
echo "오오옷!!!"
sleep 1
echo "($R) 4성카드가 나왔습니다."
elif (($R > 10)) && (($R <= 99)); then
echo "($R) 3성카드가 나왔습니다."
fi
elif [ "$a" = n ]; then
echo "카드뽑기가 종료 되었습니다."
exit
else
echo "제대로 고르시지?"
fi
done'보안' 카테고리의 다른 글
2024.05.29.수.보안 day39 (0) 2024.05.29 2024.05.28.화.보안 day38 (0) 2024.05.28 2024.05.24.금.보안 day36 (0) 2024.05.24 리눅스 DNS (0) 2024.05.23 윈도우 DNS (0) 2024.05.23 다음글이 없습니다.이전글이 없습니다.댓글