如何找到傳遞給Bash腳本的參數數目?如何找到傳遞給Bash腳本的參數數目?
這是我目前:
#!/bin/bash
i=0
for var in "[email protected]"
do
i=i+1
done
這樣做的還有其他(更好)的方式?
如何找到傳遞給Bash腳本的參數數目?如何找到傳遞給Bash腳本的參數數目?
這是我目前:
#!/bin/bash
i=0
for var in "[email protected]"
do
i=i+1
done
這樣做的還有其他(更好)的方式?
參數的個數爲$#
搜索它這個網頁上了解詳情: http://tldp.org/LDP/abs/html/internalvariables.html#ARGLIST
澄清:與C語言中的'argc'不同,'$#'如果沒有傳遞給腳本的參數將是'0',如果有一個參數則'1'等。 – 2014-12-08 11:55:16
#!/bin/bash
echo "The number of arguments is: $#"
a=${@}
echo "The total length of all arguments is: ${#a}: "
count=0
for var in "[email protected]"
do
echo "The length of argument '$var' is: ${#var}"
((count++))
((accum += ${#var}))
done
echo "The counted number of arguments is: $count"
echo "The accumulated length of all arguments is: $accum"
工作+1例!不錯 – MountainX 2013-07-13 19:52:11
它也幫助了我,我試圖做的是; #!/斌/慶典 數= 0 總和= 0 平均= 0 爲 「$ @」 做 ((總和+ = $ VAR)) VAR((計數++)) 完成 ( (avg = sum/$ count)) echo「數字總和爲:$ sum」 echo「數字的平均值爲:$ avg」 這可以幫助我獲得未知數的參數並進行一些數學計算(您可以編輯操作數) 感謝丹尼斯威廉姆森,我做到了。我發佈到代碼,因爲它可能對某人有用。 – 2016-03-04 11:28:15
@kaanyılmaz:唯一的問題是,Bash只做整數算術。如果你想要小數點,你需要使用AWK,'bc'或其他的東西(ksh93和zsh也可以做十進制數學)。您的代碼包含一些變量的美元符號,但不包括其他變量。你應該對使用它們是否一致。在'(())'裏面,他們沒有必要。然而,它們在「回聲」語句中。 – 2016-03-04 17:47:15
下面是輕鬆的一年 -
cat countvariable.sh
echo "[email protected]" |awk '{for(i=0;i<=NF;i++); print i-1 }'
輸出:
#./countvariable.sh 1 2 3 4 5 6
6
#./countvariable.sh 1 2 3 4 5 6 apple orange
8
可以寫成'echo「$ @」| awk'{print NF}'' – user000001 2016-10-06 12:16:02
該代碼將簡單地存儲字串'i的變量'i'如果任何參數都存在+ 1'。 – Philipp 2010-12-12 19:18:00
@TheConstructor:看看OP的記錄,即接近5。5年的2個帖子,只有業力的被動積累(其中95%在這個問題上)。我真的不認爲他可以被認爲是一個積極的用戶,或者他給出了一個關於給予任何幫助的人接受的答案勾號的保護帽。他的問題是完全合法的,並且幫助了那些在「男子氣概」中缺乏實踐經驗的人。所以,活着,讓我們活下去吧!--) – Cbhihe 2016-04-02 17:41:19
@Cbhihe我以爲我會嘗試一下。 OP可能仍在閱讀並查看通知。我得到了「無用的英雄」 - 通常不會提醒OP接受我的回答。儘管如此,如果他們中的一個最終會接受我的回答,我仍然會感到自豪。 – TheConstructor 2016-04-02 17:45:18