셸 프로 그래 밍 (9) --- for 순환
형식 1:
for 变量 in 循环列表
do
循环体
done
说明:for执行的时候,从循环列表中的第一个值开始执行循环,遍历循环列表,循环结束。
형식 2:
for ((初始值;结束条件;变化值))
do
循环体
done
for 순환 과 생 성 목록 을 함께 사용 할 때 $(command) 또는 'command' 와 같은 명령 을 바 꿉 니 다.
목록 생 성 방법
방법 1:
{a..b}:表示的是从a到b
{a..b..c}:表示的是从a到c,并且以c为增加值(步长)
예시 1:
[root@Server3 tmp]# touch {1..3}
[root@Server3 tmp]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jul 8 21:26 1
-rw-r--r-- 1 root root 0 Jul 8 21:26 2
-rw-r--r-- 1 root root 0 Jul 8 21:26 3
[root@Server3 tmp]#
예시 2:
[root@Server3 tmp]# touch {1..5..2}
[root@Server3 tmp]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jul 8 21:26 1
-rw-r--r-- 1 root root 0 Jul 8 21:26 3
-rw-r--r-- 1 root root 0 Jul 8 21:26 5
[root@Server3 tmp]#
방법 2:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
예시 3:
[root@Server3 Menu]# seq 4
1
2
3
4
[root@Server3 Menu]# seq 1 2 5
1
3
5
[root@Server3 Menu]# seq 1 3
1
2
3
[root@Server3 Menu]#
예시 4: 1 에서 100 까지
[root@Server3 Learn]# cat for1.sh
#!/bin/bash
declare -i sum=0
for i in $(seq 1 100)
do
# sum=$(expr $sum + $i)
# sum=$[$sum+$i]
# sum=$(($sum+$i))
let sum=$sum+$i
done
echo "$sum"
[root@Server3 Learn]#
说明:
declare为声明一个变量的类型。如果开始的时候不使用declare -i sum=0,将sum的变量声明为整型,而是直接写成sum=0,则表示的是sum为字符串类型。
$(seq 1 100):这一块为循环列表,表示的是从1到100。也可以写成{1..100}。
do和done之间的循环体表示的都是计算数值相加的不同方法,结果都是一样的。
예시 5:
[root@Server3 Learn]# cat for2.sh
#!/bin/bash
for i in $(cat /etc/passwd | cut -d: -f1)
do
echo "Hello $i"
done
[root@Server3 Learn]#
예시 6:
[root@Server3 Learn]# cat for2.sh
#!/bin/bash
line=$(wc -l /etc/passwd | awk '{print $1}')
for i in $(seq 1 $line)
do
echo "Hello `head -n $i /etc/passwd | tail -n 1 | cut -d: -f1`, your shell is $(head -n $i /etc/passwd | tail -n 1 | cut -d: -f7)"
done
[root@Server3 Learn]#
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.