如何在shell脚本中传递参数数组?

如何在shell脚本中传递参数数组?,shell,svn,unix,loops,cut,Shell,Svn,Unix,Loops,Cut,现在我有一个工作脚本,可以将两个参数传递给shell脚本。该脚本基本上以ticket#和svn URL作为命令行上的参数,并给出与该ticket#相关的所有修改的输出(在svn注释中) 输出: 4738 4739 4743 4744 4745 我需要一些帮助来传递一个参数数组,这意味着不止一个票证,并将与作为参数传递给脚本的票证号相关的修订输出。我认为POSIX shell没有数组,所以请简单地使用#/bin/bash 我会把url作为第一个参数,所有重置都是票证 #!/bin/bash re

现在我有一个工作脚本,可以将两个参数传递给shell脚本。该脚本基本上以ticket#和svn URL作为命令行上的参数,并给出与该ticket#相关的所有修改的输出(在svn注释中)

输出:

4738
4739
4743
4744
4745

我需要一些帮助来传递一个参数数组,这意味着不止一个票证,并将与作为参数传递给脚本的票证号相关的修订输出。

我认为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
#/bin/bash
转速=()
src_url=$1
svn_log=$(svn log“$src_url”--复制时停止)
转移
在“$@”中购买jira_票;做

转数+=($(grep-b2“$jira_门票)1/这里的$1和$2是什么?2/如果有第三个参数像$target_url一样被传递,该怎么办?@iaav,我通过回答进行了一些更新,以更正粘贴代码时的错误。应该更清楚。另外,它只调用
svn log
一次,所以进行了一些优化。我怀疑我没有回答您真正的问题:请发布
svn log这是用法吗?
/script.sh$src\u url ticket-1 ticket-2 ticket-3?
是的。一旦分配了src\u url并且第一个参数是
shift
ed,所有剩余参数(
“$@”
)都是ticket
#!/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