亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Shell最多支持多少個參數?

2020-07-27 19:13:01
字體:
來源:轉載
供稿:網友

在腳本編寫過程中,通常會涉及到參數的輸入。譬如,sh 1.sh 10 20,在執行1.sh這個腳本中,10即為第一個參數,20即為第二個參數。有時,就會有這個疑惑,即shell腳本最多可以支持多少個變量呢?疑惑之余,編寫了如下腳本,可求出Shell腳本中可輸入參數的最大個數。

該腳本涉及到三個小腳本:1.sh 2.sh 3.sh --在這里為了方便,腳本名都是極其簡單的??偟乃悸肥墙o定一個特定的值n,作為輸入參數的最大個數,然后將1,2,3...n作為腳本的輸入參數,這通過腳本2.sh來實現,接著原樣輸出這些參數。如果這些參數全部都能輸出,即代表給定的n是合理的。這通過腳本3.sh來實現。1.sh實現的功能是通過一個死循環,遞增生成n,通過引用2.sh來判定n是否合理。具體可見如下腳本。

首先我們來看看第一個腳本1.sh

復制代碼 代碼如下:

#!/bin/bash
i=0
echo 0 > currnumber
while true
do
  i=$[$i+1]
  sh 2.sh $i
  if [ $? -ne 0 ];then
      echo $i > maxnumber
      exit 1
  else
      sed -i '1s/$/& '$i'/' currnumber
  fi
done

該腳本主要是提供了一個死循環,$i指的是可輸入參數的個數,2.sh用于判定給定參數的個數是否合理,如果合理,則將該數值追加到currnumber這個文件中,如果不合理,則代表$i-1是shell能接受的最大參數個數。則將該數值輸出到maxnumber文件中。

currnumber文件的應用便于檢測腳本的執行情況。原打算是echo $i >> currnumber,即每一個合理的數值都輸出一行,考慮到文件有最大行數的限制,在這里,就將數值輸出到一行。sed -i '1s/$/& '$i'/' currnumber即實現該功能,將$i的值添加到行尾。

再來看看腳本2.sh

復制代碼 代碼如下:

#!/bin/bash
rm -f 1.test
touch 1.test
num=$1
echo "#!/bin/bash" > 1.test
echo "sh 3.sh" >> 1.test
for ((i=1; i<=$num; i++))
do
   sed -i '2s/$/& '$i'/' 1.test
done
sh 1.test

腳本2實現的功能是將1,2,3...$i作為3.sh的輸入參數,同樣,sed -i '2s/$/& '$i'/' 1.test實現的是將1,2,3...n輸出到一行。譬如如果$num=10,則1.test的內容如下所示:

復制代碼 代碼如下:

#!/bin/bash
sh 3.sh 1 2 3 4 5 6 7 8 9 10

最后我們來看看腳本3.sh

復制代碼 代碼如下:

#!/bin/bash
echo 0 > 2.test
num=$#
for ((i=1;i<=$num;i++))
do
   sed -i '1s/$/& '$i'/' 2.test
   shift 1
done

該腳本實現的是原樣輸出輸入參數,并將該輸入參數輸出到2.test中。同樣,sed -i '1s/$/& '$i'/' 2.test實現的是追加參數到一行。

總結:

1> sh 1.sh即可求出shell腳本允許的最大輸入參數個數。

2> 因條件有限,沒有具體求出該值。但我們可跳過1.sh,單純的通過2.sh來判定特定的數值。如,sh 2.sh 100000,經測試100000個輸入參數沒有問題。

3> 該腳本的亮點是如何將特定的值追加到行尾,這主要通過sed -i '1s/$/& '$i'/' 2.test來實現,其實1s代表第一行。$代表行尾。

4> 在vim中,0可跳到行首,$可跳到行尾。

5> shift左移輸入參數的位置。默認是左移1位。如shift 3表示原來的$4現在變成$1,原來的$5現在變成$2等等,原來的$1、$2、$3丟棄,$0不移動。

6> 該腳本存在一個隱患,即文本文件的行有最大的字符限制。但將100000作為輸入參數個數進行測試時,沒有問題,說明文本文件一行還是能容納相當數量的字符。

PS: 在監測2.test的結果時,我們可以用watch cat 2.test,即每兩秒查看一下2.test的內容,但該法有個弊端,數據較多時,無法在一個屏幕中顯示,它只會顯示前面固定的數據,新增的數據不會顯示,但在該例中,我們更加關心的是數據是否增加。如下腳本可實現該功能:

復制代碼 代碼如下:

#!/bin/bash
while true
do
   cat 2.test
   sleep 30
done

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线影院| 欧美成人中文字幕在线| 亚洲精品欧美一区二区三区| 久久免费精品视频| 欧美自拍视频在线| 日韩av在线直播| 国产a级全部精品| 精品久久香蕉国产线看观看gif| 国产精品久久久久91| 国产精品久久久久久久久久久久久久| 国产亚洲精品一区二区| 美女视频黄免费的亚洲男人天堂| 久久视频在线观看免费| 91欧美激情另类亚洲| 国产主播喷水一区二区| 国产98色在线| 国模吧一区二区| 亚洲精品久久久一区二区三区| 亚洲视频一区二区| 亚洲欧美日韩成人| 久热国产精品视频| 国产精品av在线| 欧美人成在线视频| 国产mv免费观看入口亚洲| 中文字幕精品—区二区| 久久伊人精品一区二区三区| 久久亚洲电影天堂| 色综合久久精品亚洲国产| 亚洲深夜福利在线| 亚洲人在线视频| 国外色69视频在线观看| 国内精品久久久久久久| 久久免费高清视频| 国产精品欧美激情| 美女av一区二区| 欧美性jizz18性欧美| 亚洲国产高清高潮精品美女| 久久久久久午夜| 欧美亚洲日本黄色| 亚洲男人天堂2023| 亚洲国产精品久久久| 亚洲精品影视在线观看| 日韩欧美中文免费| 国产精品成人一区二区三区吃奶| 日韩视频免费中文字幕| 欧美肥婆姓交大片| 亚洲成人网在线| 91精品国产一区| 国产成人av在线| 亚洲精品福利免费在线观看| 亚洲精品久久久久中文字幕二区| 欧美乱妇高清无乱码| 亚洲aa在线观看| 大桥未久av一区二区三区| 日韩av影院在线观看| 国产欧美一区二区白浆黑人| 国产精品久久久久久久9999| 亚洲综合成人婷婷小说| 国产精品高潮在线| 欧美乱大交xxxxx另类电影| 日韩精品一二三四区| 亚洲第一精品电影| 4438全国成人免费| 欧美综合在线第二页| 亚洲成人a级网| 亚洲人成在线电影| 狠狠躁夜夜躁久久躁别揉| 欧美性开放视频| 成人妇女淫片aaaa视频| 日韩免费在线看| 国产在线98福利播放视频| 中文字幕日韩av电影| 国产亚洲欧洲高清| 欧美视频专区一二在线观看| 国产日韩中文在线| 亚洲精品美女免费| 国产日韩精品电影| 国产精品678| 久久天天躁狠狠躁老女人| 亚洲天堂网站在线观看视频| 亚洲高清久久网| 亚洲尤物视频网| 欧美中文在线观看国产| 久久亚洲综合国产精品99麻豆精品福利| 亚洲欧洲成视频免费观看| 7777精品久久久久久| 欧美精品福利在线| 91爱爱小视频k| 国产va免费精品高清在线观看| 亚洲成人国产精品| 亚洲欧洲中文天堂| 久久精品99久久久香蕉| 欧美成人三级视频网站| 国产精品久久久av| 欧美激情视频一区二区三区不卡| 美乳少妇欧美精品| 福利视频第一区| 亚洲无限av看| 欧美性猛交xxxx乱大交| 国产精品网站大全| 亚洲第一精品夜夜躁人人躁| 久久av红桃一区二区小说| 九九热这里只有精品6| 欧美精品电影免费在线观看| 成人羞羞国产免费| 日韩成人中文字幕| 精品无人国产偷自产在线| 不卡伊人av在线播放| 在线精品高清中文字幕| 国产精品手机播放| 欧美精品免费播放| 亚洲精品在线观看www| 久久久精品在线观看| 欧美日韩国产激情| 亚洲精品美女在线| 亚洲电影第1页| 狠狠躁18三区二区一区| 久久五月天综合| 国产精品日韩在线播放| 欧美日韩中文在线| 狠狠躁夜夜躁人人爽天天天天97| 国产精品在线看| 亚洲男人第一av网站| 久久久久久久国产精品| 中文字幕在线成人| 成人久久一区二区三区| 欧美亚洲激情视频| 日韩av三级在线观看| 亚洲欧美国产一本综合首页| 综合激情国产一区| 欧美激情videos| 亚洲精品日韩av| 中文字幕亚洲综合久久筱田步美| 欧美性极品xxxx娇小| 少妇av一区二区三区| 亚洲国产精品女人久久久| 国色天香2019中文字幕在线观看| 欧美在线观看视频| 亚洲天堂男人天堂女人天堂| 欧美主播福利视频| 日韩精品在线免费观看| 亚洲国产女人aaa毛片在线| 综合136福利视频在线| 久久国产精品偷| 国产欧美精品日韩精品| 久久夜色精品国产| 亚洲xxxxx性| 久久91超碰青草是什么| 国产精品pans私拍| 在线成人激情黄色| 亚洲国产日韩一区| 国产在线精品一区免费香蕉| 亚洲国产精品系列| 亚洲网址你懂得| 国产精品丝袜久久久久久高清| 欧美精品videossex性护士| 日韩精品在线免费观看| 亚洲欧美国产另类| 91在线中文字幕| 91精品国产91久久久久久吃药| 亚洲欧美国产一区二区三区| 日韩av综合网站| 久久久久www| 97精品国产97久久久久久免费|