1 #!/bin/bash 2 for i in `seq 1 $1` 3 do 4 for j in `seq 1 $2` 5 do 6 s=$(($RANDOM%100)) 7 echo -e "$i,$j\t$s" >>M_$1_$2 8 done 9 done
第1行:#!/bin/bash是指此腳本使用/bin/bash來解釋執行。其中,#!是一個特殊的表示符,其后,跟着解釋此腳本的shell路徑。bash只是shell的一種,還有很多其它shell,如:sh,csh,ksh,tcsh,...
第2行:$1表示從命令行中讀取的第一個參數,在linux中$表示取得某個變量的值。seq 是Linux 中一個預設的外部命令,一般用作一堆數字的簡化寫法。seq 1 $1 表示1到$1的所有數字(兩端都包括),由於seq是一個系統命令,在shell編程中,如果使用了系統命令就要使用`(esc下面的符號,不是單引號)(seq就是系統命令)。
第6行:RANDOM是Linux的系統隨機變量,是一個5位的隨機數。
第7行:$1(第1個參數)、$2(第2個參數)就是從命令行中讀取到的參數。echo就是打印信息到目標設備的。
echo:默認打印設備是顯示器,echo "hello"就是打印信息到顯示器。echo "hello" >>M_1就是打印信息到文件M_1。若打印的字符串出現了以
下字符,則特別加以處理,而不會將它當成一般
文字輸出,這時候要加-e參數:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
當完成shell編程之后,將文件保存,后綴名為.sh。假設為test.sh
2)最后一步要對這個文件賦予可執行權限,並且所有設置為所有用戶/用戶組都可以訪問:
chmod a+x test.sh
否則會提示權限不夠。(不設置也是可以的,可以直接使用bash test.sh來運行)
3)還有一個cat的知識點:
cat test.sh >> test2.sh
將test中的內容插入到test2.sh中,如果沒有test2.sh就創建這個文件。
4)運行時的截圖如下:
5)結果如下: