A. 인쇄 9 * 9 곱셈 테이블
1 #! / 빈 / 떠들썩한 파티 2 대 I 의 서열`9` 3 할 4 에 대해 J 의 ' 서열 $ i` 5 수행 6 에코 -n " $ 난 * $ J = $ [내가 * J]가 " 7 일 8 에코 9 일
II. 가위 바위 보 게임
. (1) #! / 빈 / 배쉬 2 게임 = (가위 바위 보) . 3 NUM = $ [임의의 % . (3) ] . 4 컴퓨터 = $ {게임 [$ NUM]} . 5 # 펀치 임의로 생성하고 배열 게임에 저장 될 수있다 [$ NUM ] 게임 [ 0 ] 게임 [ 1 ] 게임 [ 2 ]를 가위 바위를 나타내는 6. 에코 " 를 선택 제스처 펀치 다음 프롬프트에있어서 「 7. 에코 " 돌 : 위 1 : 2 천 :. 3 " . 8 읽기 -p " 제발 펀치 (2, 3) " 다음 사람 9 케이스가 사람을 $ 에서 10 일 ) 11 IF[$ NUM -eq 0 ] 는 12되는 에코 " 타이 " 13이다 ELIF는 [$ NUM -eq . 1 ] 그 후에 14 에코 " 는 승리 " 15 다른 16 에코 " 컴퓨터 승 ' . 17 인터넷 ; 18은 2 ) (19). IF [$ NUM -eq 0 ] (가) 다음 20되는 에코 " 컴퓨터 승리 " 21 인 ELIF [$ -eq NUM은 1이다. ], 그 후에 22은 에코 "그리기 " (23)가 다른 24 에코 " 당신이 이길 " 25 인터넷 ;; (26)는 3. ) 27 IF [$ NUM -eq 0 ] 당시 28 에코 " 당신이 이길 " (29) 의 elif [$ NUM -eq 1. ] 당시 30 에코 " 컴퓨터 승 " 31 다른 32 에코 " 무승부 "
III. 게임을 추측
1 #! / 빈은 / bash는 2 # 스크립트는 사용자가 사용자 입력을 기반으로, 추측하라는 메시지가 표시됩니다 적은 100보다 난수를 생성하는,> 프롬프트를 추측, 추측 추측 큰 또는 작은, 당신이 바로 지금까지 추측까지. 3 NUM = $ [랜덤 %의 100 + 1 ] # 1 - 난수 (100) 4. 읽기 -p " 컴퓨터에서 생성 된 난수 1 (100)에, 생각하십시오 " cai1 . 5 L = 0 6. 그동안 : 7. 할 8. 송출의 L ++ . 9 IF가 [L -eq $ 1. ] 그 후에 10 IF [-eq $ $ cai1 NUM] 그때 . 11 에코 " 축하, 추측 " 12 출구 (13)는 ELIF [-gt $ $ cai1 NUM] (가) 다음 14 에코 " 큰 추측 " 15 다른 16 에코 " 작은 추측 " 17. 인터넷 (18)은 다른 19. 읽기 -p " : 계속 " CaI2 20은 IF [$ CaI2 -eq NUM $] 당시 21 에코 " 축하합니다, 당신은 추측 " 22 번 출구 (23) 의 elif [$ 카이 2 -gt $ NUM]는, 당시 24은 에코 " 추측 큰 " 25 다른 (26) 에코 " 작은 추측 " 27 파이 28 파이 (29)는 DONE
정렬 IV. 세 가지 임의의 숫자
1. 대화
1 #!/bin/bash 2 #依次提示用户输入三个整数,脚本根据数字大小排序输出3个数字 3 read -p "请输入一个整数:" num1 4 read -p "请输入一个整数:" num2 5 read -p "请输入一个整数:" num3 6 #从小到大排序,设定最后输出num1,num2,num3,脚本运行中将最小,中间,最大值分别赋予这三个变量,引入对调变量tmp 7 tmp=0 8 #如果num1大于num2则对调1和2,保持num1最小 9 if [ $num1 -gt $num2 ];then 10 tmp=$num1 11 num1=$num2 12 num2=$tmp 13 fi 14 #如果num1大于num3则对调1和3,保持num1最小 15 if [ $num1 -gt $num3 ];then 16 tmp=$num1 17 num1=$num3 18 num3=$tmp 19 fi 20 #如果num2大于num3则对调2和3,保持num2更小 21 if [ $num2 -gt $num3 ];then 22 tmp=$num2 23 num2=$num3 24 num3=$tmp 25 fi 26 echo "排序后的数据为:$num1,$num2,$num3"
2.非交互式
1 #!/binbash 2 l=0 3 tmp=0 4 for i in `cat /home/student/桌面/shell脚本/文档/paixu.txt` #一个含3个数字的文件 6 do 7 let l++ 8 if [ $l -eq 1 ];then 9 num1=$i 10 fi 11 if [ $l -eq 2 ];then 12 num2=$i 13 if [ $num1 -gt $num2 ];then 14 tmp=$num1 15 num1=$num2 16 num2=$tmp 17 fi 18 fi 19 if [ $l -eq 3 ];then 20 num3=$i 21 if [ $num1 -gt $num3 ];then 22 tmp=$num1 23 num1=$num3 24 num3=$tmp 25 fi 26 if [ $num2 -gt $num3 ];then 27 tmp=$num2 28 num2=$num3 29 num3=$tmp 30 fi 31 fi 32 done 33 echo "从小到大排序:$num1,$num2,$num3"
五.点名器
1 #!/bin/bash 2 #提前准备文件user.txt,一行一个姓名 3 read -p "请输入想要抽到的人数:" xxx 4 l=1 5 while [ $l -le $xxx ] 6 do 7 let l++ 8 line=`cat /home/student/桌面/shell脚本/文档/user.txt | wc -l` 9 num=$[RANDOM%line+1] 10 sed -n "${num}p" /home/student/桌面/shell脚本/文档/user.txt 11 sleep 0.5 12 done
六.打印国际象棋棋盘
1 #!/bin/bash 2 #两个变量i和j代表行和列 3 for i in {1..8} 4 do 5 for j in {1..8} 6 do 7 sum=$[i+j] 8 if [ $[sum%2] -eq 0 ];then #偶数 9 echo -ne "\033[46m \033[0m" 10 else 11 echo -ne "\033[47m \033[0m" 12 fi 13 done 14 echo 15 done
七.fork炸弹(会快速消耗计算机资源,导致计算机死机)(请在虚拟机中实验,千万不要在真机尝试,若操作失误请重启计算机)
1 .(){ 2 .|.& 3 } 4 .
八.打印斐波那契数列(后一个数字永远是前两个数字之和)
1 #!/bin/bash 2 list=(0 1) 3 for i in `seq 2 11` 4 do 5 list[$i]=`expr ${list[-1]} + ${list[-2]}` 6 done 7 echo ${list[@]}
九.打印一些特殊图形
1 #!/bin/bash 2 clear 3 for ((i=1;i<=9;i++)) 4 do 5 for((j=1;j<=i;j++)) 6 do 7 echo -n "$i" 8 done 9 echo"" 10 done 11 #图1 12
13 read -n1 "按任意键继续" key 14 clear 15 for ((i=1;i<=5;i++)) 16 do 17 for((j=1;j<=i;j++)) 18 do 19 echo -n "|" 20 done 21 echo "_" 22 done 23 #图2 24
25 read -n1 "按任意键继续" key 26 clear 27 for ((i=1;i<=5;i++)) 28 do 29 for((j=1;j<=i;j++)) 30 do 31 echo -n "*" 32 done 33 echo"" 34 done 35 36 for ((i=5;i>=1;i--)) 37 do 38 for((j=1;j<=i;j++)) 39 do 40 echo -n "*" 41 done 42 echo"" 43 done 44 #图3