shell练习题
发布时间:2020-12-15 16:27:04 所属栏目:安全 来源:网络整理
导读:基础练习 练习1:打印图形-打印n行n列矩阵的图形 #!/bin/bash#我的shell#Date:2017-8-25#Author:XianWei#判断输入的是否为数字while((1))do{read-p"Pleaseinputanumber:"numif[$num-gt0]/dev/null21thenbreak#如果输入的是一个数字,则跳出循环elseecho"Erro
基础练习 练习1:打印图形-打印n行n列矩阵的图形 #!/bin/bash #我的shell #Date:2017-8-25 #Author:XianWei #判断输入的是否为数字 while((1)) do { read-p"Pleaseinputanumber:"num if[$num-gt0]>/dev/null2>&1 then break#如果输入的是一个数字,则跳出循环 else echo"Error,Pleaseinputanumber" fi } done #打印符号 for((i=0;i<$num;i++))#5row do { for((j=0;j<`echo"2*$num"|bc`;j++))#10cols do echo-n"■" done echo } done 测试结果 root@vmUbu:/home/dell/shell#./27.sh Pleaseinputanumber:5 ■■■■■ ■■■■■ ■■■■■ ■■■■■ ■■■■■ root@vmUbu:/home/dell/shell#./27.sh Pleaseinputanumber:10 ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ root@vmUbu:/home/dell/shell#./27.sh Pleaseinputanumber:adc Error,Pleaseinputanumber Pleaseinputanumber:4 ■■■■ ■■■■ ■■■■ ■■■■ root@vmUbu:/home/dell/shell# 练习2:打印图形-打印三角形图形 结果如下: root@vmUbu:/home/dell/shell#./28.sh Pleaseinputanumber:5 * *** ***** ******* ********* root@vmUbu:/home/dell/shell#./28.sh Pleaseinputanumber:6 * *** ***** ******* ********* *********** root@vmUbu:/home/dell/shell# 代码: #!/bin/bash #我的shell #Date:2017-2-11 #Author:XianWei #判断输入的是否为数字 while((1)) do { read-p"Pleaseinputanumber:"num if[$num-gt0]>/dev/null2>&1 then break#如果输入的是一个数字,则跳出循环 else echo"Error,Pleaseinputanumber" fi } done #打印符号 for((i=1;i<=$num;i++)) do { #每行打印空格数 for((j=1;j<=`echo"$num-$i"|bc`;j++)) do echo-n"" done #每行打印*的个数 for((h=1;h<=`echo"2*$i-1"|bc`;h++)) do echo-n"*" done printf"n" } done 练习3:case的基本使用 代码 #!/bin/bash #Date:2017-2-12 #Author:XianWei read-p"selectanumberfrom1-4:"num case$numin 1) echo-e"e[1;36myouhaveinputednumber"1"e[0m"; ;; 2) echo-e"e[1;36myouhaveinputednumber"2"e[0m"; ;; 3) echo-e"e[1;36myouhaveinputednumber"3"e[0m"; ;; 4) echo-e"e[1;36myouhaveinputednumber"4"e[0m"; ;; *) echo-e"e[41mError!e[0m"; echo-e"e[1;36myouhaveinputedawrongnumbere[0m"; ;; esac 练习:脚本中IFS的使用 代码: #!/bin/bash oldIFS=$IFS;#保存原分隔符 IFS=",";#将分隔符设置为: line="root:x:0:0:root:/root:/bin/bash"; line2="root,x,root,/root,/bin/bash"; echo-e"e[1;35m$linee[0m"; count=0; foriin$line2 do [$count-eq0]&&user=$i;#前面成功,才之后面 [$count-eq6]&&shell=$i; letcount++;#let使变量自增 done #彩色打印字符 echo-e"e[1;36m$user'sshellis$shelle[0m"; IFS=$oldIFS;#还原分隔符 结果 root@vmUbu:/home/dell/shell#./repeat.sh root:x:0:0:root:/root:/bin/bash root'sshellis/bin/bash 练习题:until的使用 #!/bin/bash #Date:2017-02-12 #Author:XianWei i=10; until[$i-le0] do leti--; echo-n-e"e[1;36m$ie[0mc"; done echo 测试 root@vmUbu:/home/dell/shell#./until.sh 9876543210 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |