話很少說直接給出代碼:shell
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