簡體   English   中英

對於 bash 腳本

[英]For bash scripting

#!/bin/bash
read –p “Enter the number you seek   ” NUM
for VALUE in $@; do
    if [ $VALUE –eq $NUM ]; then COUNT=$((COUNT+1)); fi
done
echo $NUM appeared $COUNT times

是否可以修改上述腳本,以便:從用戶輸入兩個輸入,而不僅僅是 NUM,並計算等於或介於兩者之間的參數數量。 例如,如果用戶輸入 12 和 20,我們將有 5 個匹配項(12、18、19、12、18)。 假設第一個輸入小於第二個(即你不需要擔心用戶輸入20然后輸入12)

這就是我想出的:

#1/bin/bash
read - p "Enter two numbers ' NUM1 NUM2 
for VALUE in $@; do 
if [$VALUE <= $NUM1 ] && [ $VALUE => $NUM2 ]; then COUNT=$((COUNT+1))
fi 
done
echo we have $COUNT numbers between $NUM1 and $NUM2, including $NUM1 and $NUM2
  1. #1#! .
  2. [后需要一個空格。
  3. 你的條件倒退了。 當值在 num1 和 num2 之間時,它大於或等於 num1,但你有小於或等於。
  4. 數字比較測試是-ge-le ,因為><是 shell 腳本中的 I/O 重定向運算符。
  5. 您必須在字符串周圍使用平衡引號; 如果它與啟動"它與結束" ,而不是'
  6. 您應該始終引用變量,除非您有特定的需要允許對擴展進行分詞。
#!/bin/bash
COUNT=0
read - p "Enter two numbers " NUM1 NUM2 
for VALUE in "$@"; do 
if [ "$VALUE" -ge "$NUM1" ] && [ "$VALUE" -le "$NUM2" ]; then COUNT=$((COUNT+1))
fi 
done
echo "we have $COUNT numbers between $NUM1 and $NUM2, including $NUM1 and $NUM2"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM