加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell分割参数为数组并循环执行jar,异常时退出循环

发布时间:2020-12-15 09:21:58 所属栏目:安全 来源:网络整理
导读:使用shell,将逗号分隔的多个id分割成数组,并遍历数组将id作为参数传入java的jar进行处理。出现异常时中断循环退出。 #!/bin/bashecho "args:$*"if [ "$#" != "1" ]then echo "must have 1 args,but only has $# args." exit 1fiecho "set var"#shell param

使用shell,将逗号分隔的多个id分割成数组,并遍历数组将id作为参数传入java的jar进行处理。出现异常时中断循环退出。

#!/bin/bash
echo "args:$*"
if [ "$#" != "1" ]
then
  echo "must have 1 args,but only has $# args."
  exit 1
fi
echo "set var"
#shell params
ruleId=$1
echo "ruleId="$ruleId
#split ruleId by ","
OLD_IFS="$IFS"
IFS=","
ruleIds=($ruleId)
IFS="$OLD_IFS"
len=${#ruleIds[@]}
echo "has $len ruleId"
#begin
#do same thing
echo "begin..."
echo "executeJar"
for id in ${ruleIds[@]}
  do
    javacmd="java -jar -Dfile.encoding=gbk jar_name.jar $id $dateId $latnId"
    echo $javacmd 
    $javacmd
    if [ $? -eq 0 ]
    then
      echo $?
      echo 'ok'
    else
      echo $?
      #强制退出
      exit 1;
    fi
    echo "executeJar end ruleId:$id"
  done
  echo "End executeJar all ruleIds."     

echo "END"



[root@bd129106 shell]# ./show.sh 1,2,3 args:1,3 set var ruleId=1,3 has 3 ruleId begin... executeJar java -jar -Dfile.encoding=gbk jar_name.jar 1 Error: Unable to access jarfile jar_name.jar 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读