셸 의 for 순환 용법 상세 설명
for i in 의 다양한 용법:
#!/bin/bash
j=$1
for ((i=1; i<=j; i++))
do
touch file$i && echo file $i is ok
done
#!/bin/bash
for i in $(arp | tail -n +2|tr -s ' ' |cut -d' ' -f1)
do
arp -d $i
done
연습 2:10 개의 난수 생 성:방법 1:
for i in {0..9};do echo $RANDOM;done
방법 2:
for i in $(seq 10);do echo $RANDOM;done
연습 3:마지막 5 초:
#!/bin/bash
echo " 5 :"
for i in $(seq 5 -1 1)
do
echo -en "$i";sleep 1
done
echo -e " "
방법 2:
#!/bin/bash
echo " 5 :"
for i in $(seq 5 -1 1)
do
echo -en "\b$i";sleep 1
done
echo -e "\b "
연습 4:사용자 일괄 추가:
#!/bin/bash
for i in $(cat /root/users.txt) --》
do
useradd $i
echo "123456" | passwd --stdin $i --》
done
연습:uid 가 10000 이상 인 사용 자 를 찾 아 삭제 하려 면 for 순환 을 사용 해 야 합 니 다.
#/bin/bash
u_uid=(`cat /etc/passwd | awk -F: '{print $3}'`)
u_name=(`cat /etc/passwd | awk -F: '{print $1}'`)
for i in `seq ${#u_uid[@] }`
do
if (( ${u_uid[i-1]} > 10000 ))
then
userdel -r ${u_name[i-1]}&&echo "${u_name[i-1]} delete ok"
fi
done
방법 2:정규 로 10000 이상 의 사용 자 를 찾 습 니 다.
cat /etc/passwd | egrep “1[0-9]{4} | [2-9]{5,}”
예:IP 주소 에 따라 네트워크 에 존재 하 는 호스트 IP 를 검사 합 니 다.break 문장:(순환 점프)
continue 문장:(이번 순환 에서 벗 어 나 기)
#!/bin/bash
for i in $(cat /root/users.txt) --》
do
useradd $i
echo “123456”| passwd $i --stdin --》 UNAME
done
(ps:사용자 존재 여부 판단:id 명령)위치 변수
(위치 변수의 가장 상용 용법:bash 1.sh 변수 1 변수 2...)
미리 정 의 된 변수:
출력 1-10 이내 의 난수 C>echo$(RANDOM%10+1)
연습:출력
$1 is aa,
$2 is bb,
$3 is cc,
$4 is dd,
$5 is ee
답:
#!/bin/bash
echo "there are $# arguments in this scripts"
N=1 --》 N
for i in $@
do
echo "\$$N is $i"
((N++))
done
PS:ping 명령
예:
ping 172.30.132.123 &>/dev/null
ping 명령 에 사용 되 지 않 습 니 다.$를 실 행 했 습 니까?0 으로 돌아 가기,성공 하지 못 하면 1 로 돌아 가기
IP 주소 에 따라 네트워크 에 존재 하 는 호스트 IP 를 검사 합 니 다.
#!/bin/bash
for r in 192.168.1.{1..254}
do
ping -c1 -w1 "${ip}" &>/dev/null
done
arp -n|grep ether|tr -s ' '|cut -d' ' -f1
ping 명령 에 대한 가장 전형 적 인 스 크 립 트:
for i in {1..193}
do
( ping -c1 -i0.2 -w1 172.16.30.$i &>/dev/null
if (( $?==0 ))
then
echo "172.16.30.$i up" >>2.txt
else
echo "172.16.30.$i down" >>3.txt
fi )& --》 , 。
done
sleep 2
live_pc_num=`cat 2.txt|wc -l`
down_pc_num=`cat 3.txt|wc -l`
echo "there are $down_pc_num is down"
echo "there are $live_pc_num is up"
echo "list:"
cat 2.txt
rm -rf 2.txt 3.txt
break 문전형 적 인 while 순환:
#!/bin/bash
i=1
while : --》: true
do
echo "$i"
((i++))
sleep 0.3
done
: ,
break 를 더 하면 순환 을 뛰 어 넘 을 수 있 습 니 다:
#!/bin/bash
i=1
while :
do
echo "$i"
(( i++ ))
if (( i==20000 )) --》 1-19999
then
break
fi
done
작은 매듭사례 연습 9:
사용 자 를 대량으로 추가 하고 다음 과 같은 요 구 를 만족 시 킵 니 다.
답:
#!/bin/bash
read -p " :" a
read -p " :" num
if (( $num<=10 ))
then
n=0
for i in `seq $num`
do
if useradd $a$i &>/dev/null
then
echo " $a$i !"
(( n++ ))
echo "123456"|passwd $a$i --stdin &>/dev/null
fi
done
echo " :$n "
else
echo " 10 !"
fi
셸 의 for 순환 용법 에 대한 자세 한 설명 은 여기까지 입 니 다.셸 for 순환 에 관 한 더 많은 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.