0

所以我仍在学习 shell 脚本,并试图弄清楚如何返回一串数字。我的代码如下:

#!/bin/bash
 read -p "Enter NUM1 " NUM1
 read -p "Enter NUM2 " NUM2
    if [ $NUM1 -gt $NUM2 ]; then $NUM1=g1 && $NUM2=g2
    elif [ $NUM2 -gt $NUM1 ]; then $NUM2=g1 && $NUM1=g2; fi

 for VALUE in $@; do
    if [ $VALUE -lt $g1 ] && [ $VALUE -gt $g2 ]; then COUNT=$((COUNT+1)); fi
 done
 echo $VALUE happened $COUNT times

本质上,我会传递一个数字列表,并希望返回 g1 和 g2 之间的匹配数以及匹配本身。任何帮助表示赞赏。

4

1 回答 1

0

问题是您颠倒了 g1 和 g2 分配的顺序!

这是你的脚本工作:

#!/bin/bash
 read -p "Enter NUM1 " NUM1
 read -p "Enter NUM2 " NUM2
    if [ $NUM1 -gt $NUM2 ]; then g1=$NUM1 && g2=$NUM2
    elif [ $NUM2 -gt $NUM1 ]; then g1=$NUM2 && g2=$NUM1; fi

 for VALUE in $@; do
    if [ $VALUE -lt $g1 ] && [ $VALUE -gt $g2 ]; then COUNT=$((COUNT+1)); fi
 done
 echo $VALUE happened $COUNT times
于 2013-06-27T18:47:38.707 回答