셸 스 크 립 트 프로 그래 밍 순환 for/while/untill 순환
3784 단어 shellforbash셸 스 크 립 트 프로 그래 밍
입장 조건: 조건 이 만족 할 때 만 순환 에 들 어 갑 니 다.
종료 조건: 모든 순환 은 종료 조건 이 있어 야 합 니 다. 순환 을 종료 할 기회 가 있 습 니 다.
bash 스 크 립 트:
for 순환
while 순환
until... 까지 순환
for 순환:
두 가지 형식:
(1) 목록 옮 겨 다 니 기
(2) 제어 변수
(1) 목록 옮 겨 다 니 기:
for VARAIBLE in LIST; do
순환 체
done
입장 조건: 목록 에 요소 만 있 으 면 순환 에 들 어 갈 수 있 습 니 다.
종료 조건: 목록 에 있 는 요 소 를 옮 겨 다 니 기 완료;
LISTT 생 성 방식:
(1) 직접 드 립 니 다.
(2) 정수 목록
(a) {start..end}
(b) seq [start [incremtal]] last
(3) 목록 을 되 돌려 주 는 명령
(4) glob
(5) 변수 참조
$@, $*
예시: 세 명의 사용자 추가
#!/bin/bash
#
for username in user21 user22 user23; do
if id $username &> /dev/null; then
echo "$username exists."
else
useradd $username && echo "Add user $username finished."
fi
done
예: 100 이내 의 모든 정수 의 합 을 구한다.
#!/bin/bash
#
declare -i sum=0
for i in {1..100}; do
echo "\$sum is $sum, \$i is $i"
sum=$[$sum+$i]
done
echo $sum
예제: 판단/var/log 디 렉 터 리 의 모든 파일 의 내용 형식
#!/bin/bash
#
for filename in /var/log/*; do
if [ -f $filename ]; then
echo "Common file."
elif [ -d $filename ]; then
echo "Directory."
elif [ -L $filename ]; then
echo "Symbolic link."
elif [ -b $filename ]; then
echo "block special file."
elif [ -c $filename ]; then
echo "character special file."
elif [ -S $filename ]; then
echo "Socket file."
else
echo "Unkown."
fi
done
for 순환 형식:
for VARAIBLE in LIST; do
순환 체
done
for 순환 실현 9 * 9 곱셈 표
#!/bin/bash
#
for j in {1..9}; do
for i in $(seq 1 $j); do
echo -n -e "${i}X${j}=$[${i}*${j}]\t"
done
echo
done
while 순환:
while CONDITION; do
순환 체
순환 제어 변수 수정 식
done
입장 조건: CONDITION 테스트 는 "진"
종료 조건: CONDITION 테스트 는 "가짜"입 니 다.
예: 100 이내 의 모든 정수 의 합 을 구한다.
#!/bin/bash
#
declare -i sum=0
declare -i i=1
while [ $i -le 100 ]; do
let sum+=$i
let i++
done
echo $sum
until... 까지 순환:
until CONDITION; do
순환 체
순환 제어 변수 수정 식
done
입장 조건: CONDITION 테스트 는 "가짜"
종료 조건: CONDITION 테스트 는 "진짜"
예: 100 이내 의 모든 정수 의 합 을 구한다.
#!/bin/bash
#
declare -i sum=0
declare -i i=1
until [ $i -gt 100 ]; do
let sum+=$i
let i++
done
echo $sum
while 순환 의 특수 한 용법 (파일 을 옮 겨 다 니 는 줄):
while read VARIABLE; do
순환 체
done < /PATH/FROM/SOMEFILE
/PATH/FROM/SOMEFILE 파일 의 모든 줄 을 순서대로 읽 고 VARIABLE 변수 에 기본 값 을 부여 합 니 다.
예제: ID 번호 가 짝수 인 사용 자 를 찾 아 사용자 이름, ID 및 기본 셸 을 표시 합 니 다.
#!/bin/bash
#
while read line; do
userid=$(echo $line | cut -d: -f3)
username=$(echo $line | cut -d: -f1)
usershell=$(echo $line | cut -d: -f7)
if [ $[$userid%2] -eq 0 ]; then
echo "$username, $userid, $usershell."
fi
done
for :
for (( ; ; )); do
done
: ;
: , ;
: 100
#!/bin/bash
#
declare -i sum=0
for ((i=1;i<=100;i++)); do
let sum+=$i
done
echo "Sum: $sum."
예제: 99 곱셈 표를 인쇄 합 니 다.#!/bin/bash
#
for ((j=1;j<=9;j++)); do
for ((i=1;i<=j;i++)); do
echo -e -n "${i}X${j}=$[${i}*${j}]\t"
done
echo
done
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.