[英]How to pass array of arguments in shell script?
现在ia有一个工作脚本,可以将2个参数传递给Shell脚本。 该脚本基本上将ticket#和svn URL作为命令行上的参数,并输出与该ticket#相关联的所有已修订版本的输出(在svn注释中)。
#!/bin/sh
jira_ticket=$1
src_url=$2
revs=(`svn log $2 --stop-on-copy | grep -B 2 $1 | grep "^r" | cut -d"r" -f2 | cut -d" " -f1| sort`)
for revisions in ${!revs[*]}
do
printf "%s %s\n" ${revs[$revisions]}
done
输出:
4738
4739
4743
4744
4745
我需要一些帮助来传递一组参数-意味着有多个票证#,并提供与那些作为args传递给脚本的票证编号相关的修订输出。
我不认为POSIX Shell具有数组,因此请简单地使用#!/bin/bash
我将url作为第一个参数,所有重置均为票据
#!/bin/bash
revs=()
src_url=$1
svn_log=$(svn log "$src_url" --stop-on-copy)
shift
for jira_ticket in "$@"; do
revs+=( $(grep -B 2 "$jira_ticket" <<< "$svn_log" | grep "^r" | cut -d"r" -f2 | cut -d" " -f1) )
done
for revisions in $( printf "%s\n" "${!revs[@]}" | sort )
do
printf "%s %s\n" ${revs[$revisions]}
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.