Linux Shell編程 從初學到精通 習題答案 課後題答案(第八章)

來源:互聯網
上載者:User

這本書沒有答案,給作者發郵件問了,他就沒有提供答案。所以只好自己做題了

第五章

5.1 

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

Q Cai-English-1984-Jiangsu-7

cat passwd|sort -r -n -t":" -k3 |awk -F":" '{print $1"\t"$3,$4,$5}'


第八章

8.1 1~100內偶數相加,使用for,while,until分別實現。

#!/bin/bash#use forsum1=0for ((i=1;i<=100;i++))do        if [ $(($i%2)) -eq 0 ]        then  sum1=$(($sum1+$i))        fidoneecho "sum1="$sum1#use whilesum2=0j=0while [ $j -le 100  ]do        sum2=$(($sum2+$j))        j=$(($j+2))doneecho "sum2="$sum2#use untilsum3=0k=0until [ $k -gt 100 ]do        sum3=$(($sum3+$k))        k=$(($k+2))doneecho "sum3="$sum3 8.2 用while實現從命令列讀取字串,知道輸入的字串為句號為止。#!/bin/bashread -p "please input:" argswhile [ "$args" != "." ]do        read -p "not right,please input:" argsdoneecho "right!"8.3 不相同
8.4 用for 實現輸出2,4,8,16,32,64,用while和until同樣實現#!/bin/bashi=2printf "%d\t" $ifor((j=1;j<=5;j++))do        i=$(($i+$i))        printf "%d\t" $idoneprintf "\n"8.5 迴圈實現從1開始疊加,直到和結果大於2000為止#!/bin/bashi=1sum=0while [ "a" = "a" ]do        sum=$(($sum+$i))        echo $sum        if [ $sum -ge 2000 ]                then break        fidone8.6 100以內被3整除的數,每行顯示8個。#!/bin/bashj=1for ((i=1;i<=100;i++))do        if [ $(($i%3)) -eq 0 ]        then                printf "%d" $i                if [ $j -lt 8 ]                then printf "\t"                        let "j++"                else                printf "\n"                j=1                fi        fidoneprintf "\n"

8.7 列印*圖形。

*

***

*****

*******

*********

#!/bin/bash

i=0

k=1

for((j=1;j<=6;j++))

do

        while [ $k -lt $i ]

        do

                echo -n "*"

                k=$(($k+1))

        done

        printf "\n"

        i=$(($i+2))

        k=1

done

8.8 輸入整數,計算各位元字之和,判斷是否能被9整除,此和能,則此數能,輸出結果。#!/bin/bashread -p "input a number:" numsum=0j=$numwhile [ $num -gt 0 ]do        j=$num%10        num=$(($num/10))        sum=$(($sum+$j))doneecho "sum="$sumif [ $(($sum%9)) -eq 0 ]then        echo "yes,the number can be divisible by 9"else        echo "no,the number cannot be divisible by 9"fi

8.9 提示輸入一些整數,計算這些整數中奇數之和與偶數之和


8.10 判斷一個整數是否為質數。素數(偶數只有2是素數,奇數並且不能被任何一個小於或等於它平方根的奇數整除,則是素數)

#!/bin/bash


read -p "input:" in

if [ $(($in%2)) -eq 0 ]

then

        if [ $in -eq 2 ]

        then

        echo "yes"

        else

        echo "no"

        fi

else

        for ((i=1;i<$in;i++))

        do

                if [ $(($in%$i)) -eq 0 ]

                then

                        echo "no"

                        exit 0

                fi

        done

fi

echo "yes"

此方法未最佳化。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.