2 년 전 바 이 두 문고 에 놓 인 셸 스 크 립 트 를 처음 배 울 때 쓴 몇 가지 간단 한 예

4859 단어 linuxshell각본
13 년 동안 Liux 가 셸 스 크 립 트 를 연습 할 때 쓴 몇 가지 간단 한 예.
1、  for 순환, while 순환, until 순환 을 사용 하여 100 이내 의 모든 짝수 의 합 을 계산 합 니 다.
for 순환:
#!/bin/sh
 
Sum=0
for i in `seq0 2 100`     #也可用for iin $(seq 0 2 100)
                                     #或者  for (( i=0;i<=100;i+=2 ))
do
         let “Sum+=i”
done
echo “SUM=$Sum”
exit 0

while 순환:
#!/bin/sh
 
Sum=0
i=0
while [ “$i” –le100 ]
do
         let “Sum+=i”
         let “i+=2”
done
echo “SUM=$Sum”
exit 0

until... 까지 순환:
#!/bin/sh
 
Sum=0
i=0
until [ “$i” –gt100 ]
do
         let “Sum+=i”
         let “i+=2”
done
echo “SUM=$Sum”
exit 0

2、  순환 을 통 해 1 부터 중첩 하여 결과 가 2000 보다 클 때 까지 (break 순환 제어 부 를 사용)
#!/bin/sh
 
Sum=0
for ((i=1;;i++)
do
         let “Sum+=i”
         if [ “$Sum” –gt 2000 ]
         then
                   echo “i=$i”
                   echo “SUM=$Sum”
                   break
         fi
done
exit 0

3、  100 이내 에 3 으로 나 눌 수 있 는 모든 수 를 찾 아 줄 마다 8 개의 수 를 표시 한 다음 줄 을 바 꾸 어 표시 한다.
#!/bin/sh
 
times=0                        #循环次数
for i in $(seq1 100)
do
         let “temp=i%3”
         let “times++”
         if [ “$temp” –eq 0 ]
         then
                   printf “$i”
                   let “a=times%8”
                   if [ “$a” –eq 0 ]
                   then
                            printf “
” fi fi done printf “

4、  구구 곱셈 표를 인쇄 하 다
#!/bin/sh
 
for ((i=1;i<=9;i++)
do
         for (( j=1;j<=i;j++ ))
         do
                   let “temp=i*j”
                   echo –n “$j*$i=$temp  “
         done
         echo “”
done
exit 0

5、  색상 형식 을 표시 하고 사용자 가 선택 할 수 있 도록 합 니 다 (select 구조 사용)
#!/bin/sh
 
echo “What isyour favorite color?”
select colorin “red” “blue” “green” “white” “black”
do
         break
done
 
echo “You haveselected $color.”
exit 0

6、  현재 작업 디 렉 터 리 의 파일 수 와 디 렉 터 리 수 를 표시 합 니 다.
#!/bin/sh
 
Number()
{
         let “dir_number=0”
         let “file_number=0”
ls
         echo “”
        
         for file in `ls`
         do
                   if [ -d “$file” ]
                   then
                            let “dir_number+=1”
                   elif [ -f “$file” ]
                   then
                            let “file_number+=1”
                   fi
done
echo “Thenumber of dirs is $dir_number.”
echo “Thenumber of files is $file_number.”
}
 
Number
exit 0

7、  아래 그림 인쇄:
*
**
***
****
*****
******
*******
********
*********
**********
 
<span style="color:#330033;">#!/bin/sh
 
for ((i=1;i<=10;i++ ))
do
         for (( j=1;j<=i;j++ ))
         do
                   echo –n “*”
         done
         printf “
” done exit 0</span>

8、  정수 하 나 를 입력 하여 정수 여 부 를 판단 합 니 다 (정수: 하나의 수 는 그 인자 의 합 과 같 습 니 다. 예 를 들 어 6 = 1 + 2 + 3)
#!/bin/sh
 
sum=0
echo “Pleaseinput a number(>1):”
read number
for ((i=1;i<$number;i++ ))
do
         let “temp=$number%i”
         if [ “$temp” –eq 0 ]
         then
                   let “sum+=i”
         fi
done
if [ “$number”–eq “$sum” ]
then
echo“$number is Perfect number!”
else
         echo “$number is not Perfect number!”
fi
 
exit 0

9、  숫자 (1 - 12) 를 입력 하고 해당 월 의 영 어 를 표시 합 니 다 (case 구조 사용)
#!/bin/sh
 
echo “Pleaseinput a month(1-12):”
read month
 
case “$month”in
1)
         echo “The month is January!”;;
2)
         echo “The month is February!”;;
3)
         echo “The month is March!”;;
4)
         echo “The month is April!”;;
5)
         echo “The month is May!”;;
6)
         echo “The month is June!”;;
7)
         echo “The month is July!”;;
8)
         echo “The month is Augest!”;;
9)
         echo “The month is September!”;;
10)
         echo “The month is October!”;;
11)
         echo “The month is November!”;;
12)
         echo “The month is December!”;;
*)
         echo “The month is not in (1-12)!”;;
esac
 
exit 0

10、  한 해 를 입력 하여 윤년 여 부 를 판단 하고 조건 을 판단 합 니 다.
(1)       4 로 나 눌 수 있 지만 100 으로 나 눌 수 없 는 해 는 윤년 이다.
(2)       100 으로 정 제 될 수 있 지만 400 으로 정 제 될 수 있 는 해 는 윤년 이다.
#!/bin/sh
 
echo “Pleaseinput a year:”
read year
 
#设置取余参数
let “n1=$year%4”
let “n2=$year%100”
let “n3=$year%400”
if [ ! “$n1” –eq0 ]
then
         leap=0
elif [ ! “$n2”–eq 0 ]
then
         leap=1
elif [ ! “$n3”–eq 0 ]
then
         leap=0
else
         leap=1
fi

if [ “$leap” –eq1 ]
then
         echo “$year is a leap year!”
else
         echo “$year is not a leap year!”
fi
 
exit 0

좋은 웹페이지 즐겨찾기