今天瀏覽網頁的時候突然看到乙個
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
迴圈結構忘了,我就自己
了一下,以下為簡要解決方案:
在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...