#!/bin/bash
while IFS= read -r -a line; do
for raw_value in $line; do
raw_value_1=`echo $line | sed "s/,/ /g" | head -n1 | awk '{print $1;}'`
raw_value_2=`echo $line | sed "s/,/ /g" | head -n1 | awk '{print $2;}'`
raw_value_3=`echo $line | sed "s/,/ /g" | head -n1 | awk '{print $3;}'`
REPO=`echo $raw_value_1`
BRANCH=`echo $raw_value_2`
TAG=`echo $raw_value_3`
echo $REPO
echo $BRANCH
echo $TAG
done
arrVar=("$REPO" "$BRANCH" "$TAG")
for value in "${arrVar[@]}"
do
cmd="echo ${arrVar[@]}"
cmd_out=$($cmd)
status=$?
if [[ $status -eq 0 ]]
then
echo "First Repo is ${arrVar[0]}; Branch is ${arrVar[1]}"
echo ${arrVar[2]}
fi
done
done < /var/lib/jenkins/Jack/test
我的檔案內容 -
杰克,大師,1.0.1 湯姆,大師,1.0.2
所需的輸出 -
回購是杰克;分支是主標簽是 1.0.1
回購是湯姆;分支是主 1.0.2
電流輸出 -
Jack master 1.0.1 Repo 是 Jack;Branch 是 master 1.0.1 Repo 是 Jack;Branch 是 master 1.0.1 Repo 是 Jack;Branch is master 1.0.1 Tom master 1.0.2 Repo is Tom;Branch 是 master 1.0.2 Repo 是 Tom;Branch 是 master 1.0.2 Repo 是 Tom;分支是主 1.0.2
uj5u.com熱心網友回復:
目前尚不完全清楚您的目的是什么,但鑒于此輸入
cat file.txt
Jack,master,1.0.1
Tom,master,1.0.2
以下是如何使用三種不同的動作場景決議資料:
while IFS=, read -r repo branch tag; do
# Printing your "desired output"
printf 'Repo is %s; Branch is %s\nTag is %s\n\n' \
"$repo" "$branch" "$tag"
# Populating an array (three more elements per input row)
arrVar =("$repo" "$branch" "$tag")
# the git command from your answer post
git clone -b "${branch}" "ssh://[email protected]:8080/test_dir/${repo}.git"
git tag "${tag}"
done < file.txt
列印場景將輸出
Repo is Jack; Branch is master
Tag is 1.0.1
Repo is Tom; Branch is master
Tag is 1.0.2
uj5u.com熱心網友回復:
感謝@pmf 的快速幫助。但我必須使用這個 arrVar 來克隆所有 Repo 名稱(Jack、Tom 等等......)。一個一個地克隆 file.txt 檔案中列出的所有 Repos。我試過這個但不作業 -
code
#!/bin/bash
while IFS=, read -r repo branch tag; do
printf 'Repo is %s; Branch is %s\nTag is %s\n\n' \
"$repo" "$branch" "$tag"
arrVar =("$repo" "$branch" "$tag")
for value in "${arrVar[@]}"
do
git clone -b "${arrVar[@]}" ssh://[email protected]:8080/test_dir/"${arrVar[0]}".git
git tag ${arrVar[3]}
done
done < file.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434637.html
