免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1847 | 回复: 17

[文本处理] 外部参数传入判断个数执行另外一个脚本 [复制链接]

论坛徽章:
0
发表于 2020-10-12 11:02 |显示全部楼层
cat 1.sh
./hql -f $1 -hivevar=$2
sh 1.sh 1.sql date=20201012
我有这个这样的脚本,参数外部传入参数是多少个不确定,我怎么根据传入多少个参数,在我的脚本里把这些传入参数加到执行的命令里呢
比如sh 1.sh 1.sql sdate=20201011 edagte=20201112 a=c
那么脚本内容就是./hsql -f $1 -hivevar=$2 -hivevar=$3 -hivevar=$4
出了第一个$1必要,其他怎么做

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:15 |显示全部楼层
回复 1# wjw870907


  1. <p>#! /bin/bash</p><p>if [ $# -lt 2 ]; then
  2. echo Need at least 2 parameters.
  3. else
  4. cmd="./hql -f $1"
  5. for index in $(seq 2 $#); do
  6. eval echo '

  7. $index
  8. para=$(eval echo '

  9. $index)
  10. cmd=$(echo $cmd "-hivevar="$para)
  11. done
  12. eval "$cmd"
  13. fi</p>
复制代码


论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:16 |显示全部楼层
  1. #! /bin/bash

  2. if [ $# -lt 2 ]; then
  3. echo Need at least 2 parameters.
  4. else
  5. cmd="./hql -f $1"
  6. for index in $(seq 2 $#); do
  7. eval echo '
  8. $index
  9. para=$(eval echo '
  10. $index)
  11. cmd=$(echo $cmd "-hivevar="$para)
  12. done
  13. eval "$cmd"
  14. fi
复制代码

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:17 |显示全部楼层

  1. <p>#! /bin/bash</p><p>if [ $# -lt 2 ]; then
  2. echo Need at least 2 parameters.
  3. else
  4. cmd="./hql -f $1"
  5. for index in $(seq 2 $#); do
  6. eval echo '

  7. $index
  8. para=$(eval echo '

  9. $index)
  10. cmd=$(echo $cmd "-hivevar="$para)
  11. done
  12. eval "$cmd"
  13. fi</p>
复制代码


论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:18 |显示全部楼层
#! /bin/bash

if [ $# -lt 2 ]; then
echo Need at least 2 parameters.
else
cmd="./hql -f $1"
for index in $(seq 2 $#); do
eval echo '$'$index
para=$(eval echo '$'$index)
cmd=$(echo $cmd "-hivevar="$para)
done
eval "$cmd"
fi

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:18 |显示全部楼层
#! /bin/bash
if [ $# -lt 2 ]; then
echo Need at least 2 parameters.
else
cmd="./hql -f $1"
for index in $(seq 2 $#); do
eval echo '$'$index
para=$(eval echo '$'$index)
cmd=$(echo $cmd "-hivevar="$para)
done
eval "$cmd"
fi

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:19 |显示全部楼层
huifubuliaole

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:20 |显示全部楼层
#! /bin/bash
if [ $# -lt 2 ]; then
echo Need at least 2 parameters.
else
cmd="./hql -f $1"
for index in $(seq 2 $#); do
eval echo '$'$index
para=$(eval echo '$'$index)
cmd=$(echo $cmd "-hivevar="$para)
done
eval "$cmd"
fi

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:21 |显示全部楼层
#! /bin/bash

if [ $# -lt 2 ]; then
echo Need at least 2 parameters.
else
cmd="./hql -f $1"
for index in $(seq 2 $#); do
eval echo '$'$index
para=$(eval echo '$'$index)
cmd=$(echo $cmd "-hivevar="$para)
done
eval "$cmd"
fi

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-10-13 01:21 |显示全部楼层
wjw870907 发表于 2020-10-12 11:02
cat 1.sh ./hql -f $1 -hivevar=$2sh 1.sh 1.sql date=20201012我有这个这样的脚本,参数外部传入参数是多 ...

#! /bin/bash
if [ $# -lt 2 ]; then
echo Need at least 2 parameters.
else
cmd="./hql -f $1"
for index in $(seq 2 $#); do
eval echo '$'$index
para=$(eval echo '$'$index)
cmd=$(echo $cmd "-hivevar="$para)
done
eval "$cmd"
fi

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP