shell模擬seq功能及shellfor迴圈總結

2021-06-19 01:06:57 字數 1368 閱讀 7093

今天瀏覽網頁的時候突然看到乙個

shell

程式,裡面有乙個命令叫做

seq,

它的作用是用於產生從某個數到另外乙個數之間的所有整數,seq

命令說明如下:

-s 指定分隔符,預設是換行

-w 等位補全,就是寬度相等,不足的前面補0

-f 格式化輸出,就是指定列印的格式

可以不指定起始數值,則預設為

1,見第

1行例子

另外,不用

seq的話還可以這樣:

for i in                      do          echo $i          done

但是我把1和

10分別用

$1,$2

來代替,使用外部輸入,只能輸出

另外我想了一下用

for迴圈來產生數字做到

seq的部分效果,才發現我

linuxshell

的for

迴圈結構忘了,我就自己

google

了一下,以下為簡要解決方案:

在shell

用for

迴圈做數字遞增的時候發現問題,特列出

shell

下for

迴圈的幾種方法

:1.

for i in `seq 11000000` do

echo $i

done 用

seq 1 10000000

做遞增,之前用這種方法的時候沒遇到問題,因為之前的

i根本就沒用到百萬

(1000000),

因為專案需要我這個數字遠大於百萬,發現用

seq數值到

1000000

時轉換為

1e+06,

根本無法作為數字進行其他運算

,或者將

$i有效、正確的取用,遂求其他方法解決,如下2.

for((i=1;i<10000000;i++)) do

echo $i

done 3.

i=1while(($i<10000000)) do

echo $i

i=`expr $i + 1`

done

因為本方法呼叫

expr

故執行速度會比第1,第

2種慢不少不過可稍作改進,將

i=`expr $i + 1`

改為i=$(($i+1))

即可稍作速度的提公升

,不過具體得看相應

shell

環境是否支援

4. 

for i indo

echo $i

done

缺陷:無法使用引數輸入的數字。

shell功能模擬

shell主要涉及多程序 shell 主要功能管理程序,執行程式 執行程式過程 使用者鍵入命令,shell建立乙個新程序來執行這個程式 shell將程式從磁碟中載入 程式在它的程序中執行直至結束 回到主程序shell 主要需要 execvp fork wait等函式 1.初級版 下面是我結合書的例子...

Shell中seq的用法

seq squeue 是乙個序列的縮寫,主要用來輸出序列化的東西 用法 seq 選項 尾數 seq 選項 首數 尾數 seq 選項 首數 增量 尾數 以指定增量從首數開始列印數字到尾數 f,format 格式 使用printf 樣式的浮點格式 後面跟的 0.3g s,separator 字串 使用指...

seq與Shell序列生成

oracle scaqad02adm01 lstorm t.sh12 345 oracle scaqad02adm01 lstorm cat t.sh usr bin sh set o nounset amount workload 5 for i in seq amount workload do...