0

$2 & $3 これらの num1 & num2 を作成して、ping 式の開始番号と終了番号を変更する方法を誰か説明してもらえますか? 私の式で何も変更せずに。

num1=1
num2=255

until [ -z $1 ] 

  case in "$1" in 

               a) $2="$num1"
                  $3="$num2" ;;
   [0-9]*-[0-9]*) $num1=${1%-*} 
                  $num2=${1#*-}

  esac
done

for ip in $(seq $num1 $num2); do
  ping -c 1 -w 1 192.168.1.$ip>/dev/null; && eho "192.168.1.$ip is up" ||:;
done
4

1 に答える 1

0

bash のマニュアルで間接参照を調べてください。あいまいに、!変数の間接化を導入します。

$ a=hello
$ var=a
$ echo ${!var}
hello

編集

num1=1
num2=255
case in "$1" in 
a)
    num1=$2;
    num2=$3
    ;;
[0-9]*-[0-9]*)
    num1=${1%-*} 
    num2=${1#*-}
    ;;
esac

for ip in $(seq $num1 $num2); do
    ping -c 1 -w 1 192.168.1.$ip>/dev/null && echo "192.168.1.$ip is up" ||:;
done
于 2012-09-03T15:30:42.167 に答える