使用shell生成隨機數


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字符;
當完成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)結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM