Shell 문법 - while 조건문
while 循环语句
while 순환 구문 문법 형식:
while < 条件表达式 >
do
指令
done
스 크 립 트 실행 에 관 한 용법
명령 하 다.
설명 하 다.
sh file.sh &
file. sh 스 크 립 트 를 배경 으로 실행 (배경 에서 스 크 립 트 를 실행 하 는 일반적인 방법)
ctl+c
현재 스 크 립 트 나 작업 실행 중지
ctl+z
현재 스 크 립 트 나 작업 일시 정지
bg
현재 스 크 립 트 나 작업 을 배경 으로 실행 합 니 다.
fg
현재 스 크 립 트 나 작업 을 프론트 에 놓 고 실행 합 니 다.여러 스 크 립 트 라면 번 호 를 추가 해 야 합 니 다. 예 를 들 어 fg 2.
jobs
현재 실행 중인 스 크 립 트 나 작업 보기
kill
실행 중인 스 크 립 트 작업 닫 기
프로 세 스 관리 에 관 한 Linux 명령
명령 하 다.
설명 하 다.
kill、killall、pkill
진행 과정 을 죽이다
ps
프로 세 스 보기
pstree
프로 세 스 상태 트 리 보이 기
top
프로 세 스 보이 기
renice
우선권 을 바꾸다
nohup
사용자 가 시스템 을 종료 한 후 계속 작업 합 니 다.
pgrep
일치 하 는 조건 의 프로 세 스 찾기
strace
프로 세 스 의 시스템 호출 상황 을 추적 합 니 다.
ltrace
프로 세 스 호출 라 이브 러 리 함수 추적
小结
1. while 순환 구조 및 관련 문장 종합 실천
2. 셸 스 크 립 트 의 각 문장의 사용 장면
#!/bin/bash
total=0
RETVAL=0
key=$((RANDOM%100))
echo "Let's play the guessing game!"
echo "key:$key"
panduan(){
read -p "input num: " num
expr $num + 1 &>/dev/null
RETVAL=$?
if [ $RETVAL -ne 0 ];then
echo "number number !!!"
panduan
fi
}
guess(){
((total++))
if [ $num -lt $key ];then
echo "It is too small"
panduan
elif [ $num -gt $key ];then
echo "It is too big"
panduan
else
echo "Guess right"
echo "yi gong cai le $total ci"
exit 0
fi
}
main(){
panduan
while true
do
guess
done
}
main $*
사례 2: 핸드폰 충전 및 문자 발송.이 사례 는 실제 용도 가 없 기 때문에 종합 적 으로 연습 하고 노 는 다음 과 같은 기능 으로 할 수 있다.
#!/bin/bash
RETVAL=0
balance=0
menu(){
cat << EOF
1) Recharge
2) Send information
3) Query
4) exit
EOF
read -p " please enter a number: " num
case $num in
1)
echo "Welcome to chongzhi !"
recharge
;;
2)
echo "Welcome Check the balance !"
send
;;
3)
echo "Welcome to the query interface !"
selects
;;
4)
echo "Looking forward to your next arrival !"
exit
;;
*)
echo "Tips:{1|2|3|4}"
menu
esac
}
recharge(){
read -p "please enter to RMB: " rmb
expr $rmb + 1 &>/dev/null
RETVAL=$?
if [ $RETVAL -ne 0 ];then
echo "please input num"
recharge
fi
echo "$rmbs Rechargs success"
((rmbs=$rmb + $balance))
menu
}
send(){
while true
read -p "send several messages: " strips
expr $strips + 1 &>/dev/null
RETVAL=$?
if [ $RETVAL -ne 0 ];then
echo "please input num"
send
fi
((count=$strips * 15))
do
if [ $count -gt $rmbs ];then
echo "Insufficient amount !!!"
read -p "Recharge(y|n|o) ?" or
if [ $or = y -o $or = Y ];then
recharge
elif [ $or = n -o $or = N ];then
send
else
menu
fi
else
read -p "Please input information content: " input
echo "sending:$input send success"
((balance=$rmbs - $count))
echo "Balance: $balance"
fi
((rmbs=$rmbs - $count))
done
}
selects(){
echo "Query:$balance"
menu
}
menu $*
사례 3: while 데 몬 방식 으로 사 이 트 를 감시 하고 10s 마다 사이트 가 정상 인지 확인 합 니 다.
#!/bin/bash
. /etc/init.d/functions
count=0
url_list=(
www.baidu.com
blog.51cto.com
www.taobao.com
www.192.168.80.123.com
)
waits(){
echo -n "3s run after"
for((i=0;i<3;i++))
do
echo -n .
sleep 1
done
echo
}
url(){
waits
for((i=0; i/dev/null 2>&1
if [ $? -eq 0 ];then
action "${url_list[$i]}" /bin/true
else
action "${url_list[$i]}" /bin/false
fi
done
((count++))
}
main(){
while true
do
url
echo "------count:$count------"
sleep 10
done
}
main
while 循环按行读文件
방법 1:
cat 文件|while read line
do
命令
done
방법 2:
while read line
do
命令
done
사례 1: 셸 스 크 립 트 를 작성 하여 cat 명령 의 기본 기능 을 실현 합 니 다.
#!/bin/bath
while read line
do
echo $line
done
사례 2: 셸 스 크 립 트 를 작성 하여 짧 은 시간 동안 PV 양 에 따라 대응 하 는 ip 을 차단 하고 DoS 기능 을 해결 합 니 다.
#!/bin/bash
count=0
while true
do
netstat -an|grep EST|awk -F '[ :]+' '{print $6}'|sort|uniq -c>ip.log
exec
다음으로 전송:https://blog.51cto.com/12384628/2297292
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.