簡體   English   中英

如何在shell腳本中傳遞參數數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM