我有一種情況,我可以使用以下任一方法指定一個 for 回圈范圍
- 范圍“{1..10}”,例如長度 = 10
- 或一組專案“tcp udp”,例如長度 = 2
獲得該集合長度的最簡單方法是什么?
uj5u.com熱心網友回復:
在這兩種情況下,創建一個陣列:
$ x=({1..10})
$ y=(tcp udp)
然后使用引數擴展來獲取陣列中的元素個數。
$ echo "${#x[@]}"
10
$ echo "${#y[@]}"
2
uj5u.com熱心網友回復:
# Bash, as brace expansion are not POSIX
count=0
for _ in {1..10}; do ((count )); done
echo "$count" # 10
# POSIX compliant
count=0
for _ in tcp udp; do : $((count=count 1)); done
echo "$count" # 2
但是這些事情都沒有意義,就好像你事先知道值那么你也會知道計數。
如果你在 bash 中有一個陣列,那么你可以簡單地讀取長度:
arr=({1..10})
echo "${#arr[@]}" # 10
arr=(tcp udp)
echo "${#arr[@]}" # 2
或者,如果您有一個檔案,或者來自例如的匹配串列。grep然后使用wc -l或grep -c將作業:
$ my_cmd | wc -l
$ my_cmd | grep -c 'pattern'
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/422141.html
標籤:
上一篇:微服務架構 | 5. 服務容災
下一篇:Bash:動態創建環境變數
