使用案例

时间:2015-06-01 13:24:45

标签: linux bash shell ubuntu

在Linux中,我使用脚本来ping几个地址。 现在我希望用户可以这样做:bash Script 50-60 脚本ping地址192.168.100.50 - 192.168.100.60 我使用xx-yy执行此操作,但我尝试了shift之后的部分是错误的。

for i in $*;
do
case $* in
 "XX-YY" ) shift;
           ping -c 1 192.168.0.$1 - $i
done

2 个答案:

答案 0 :(得分:3)

脚本:

#!/bin/bash
start=${1%-*}
end=${1#*-}
for ((i=start;i<=end;i++));do
    ping -c 1 192.168.0.$i
done

用法:

bash path_to_the_Script 50-60

一点解释:

我使用bash parameter expansion从输入字符串start中提取end50-60

${1#*-}-

$1第一次匹配后的字符串

${1%-*}-

$1的最后一场比赛(右起第一场比赛)之前的字符串

答案 1 :(得分:-1)

您可以尝试以下逻辑: ping 192.168.100。{50..60}