shell 腳本實現乘法口訣表的兩種方法——shell與C語言
話不多說直接給出代碼:
1 #!/bin/bash
2 if [ $# -eq 0 ] //用於判斷輸入的參數個數爲0
3 then
4 echo "welcome you!"
5 echo "this is a test with 2 methods to output arbitrarily mux table!"
6 else
7 echo "sorry you input invliad argc!"
8 echo "you input other argc before!"
9 exit 0 //退出
10 fi
11
12 while ((1)) //創建死循環防止輸錯給出的命令而退出
13 do
14 echo "you can choose 'shell' 'gcc' or 'quit' command"
15 read -p "please input your choice:" choice
16
17 if [ $choice == "shell" ] //判斷是shell方法實現
18 then
19 echo "will do show shell"
20 read -p "please input a num you want:" num
21 touch 6.sh
22 echo "" > 6.sh
23 echo '#!/bin/bash //將shell腳本實現的方法寫入某個腳本文件中,這裏是6.sh
24 for ((j=1;j<=$1;j++))
25 do
26 for((i=1;i<=j;i++))
27 do
28 echo -ne "$i*$j=$[$i*$j]\t"
29 done
30 echo -e "\r"
31 done
32 ' >> 6.sh
33 #chmod 777 6.sh //看自己是什麼用戶權限選擇這個命令
34 cat 6.sh
35 source 6.sh $num //執行
36 exit 0
37 elif [ $choice == "gcc" ] //判斷是C語言實現方法
38 then
39 echo "will do show c"
40 touch 6.c
41 echo "" > 6.c
42 echo '#include<stdio.h> //將C語言的方法寫入到.c文件
43
44
45
46
47 int main(int argc,char **argv)
48 { if(argc<2)
49 perror("argc num is not correct!please do it again!");
50 printf("%s\n",argv[1]);
51 int num;
52 num=atoi(argv[1]);
53 int i,j;
54 for (j=1;j<=num;j++)
55 {
56 for(i=1;i<=j;i++)
57 {
58 printf("%d*%d=%d\t",i,j,i*j);
59 }
60 printf("\n");
61 }
62
63 return 0;
64 }' >> 6.c
65 cat 6.c
66 gcc -o 6 6.c //編譯過程
67 read -p "please input a number you want:" number
68 ./6 $number //程序執行
69 exit 0
70 elif [ $choice == "quit" ] //您選擇直接退出
71 then
72 exit 0
73 else
74 echo "you don't choose a correct choice!" //表示輸錯命令可以重新輸入
75 fi
76 done