如何从 bash 中的列表中获取每三分之一和每第四个元素?
How can i get an every third and every fourth element from list in bash?
我的脚本中有下一个列表
....
declare -a Issues=('DPTESTXXXX-15-' 'DPTESTXXXX-16-' 'DPTESTXXXX-17-' 'DPTESTXXXX-18-' 'DPTESTXXXX-19-' 'DPTESTXXXX-20-' 'DPTESTXXXX-21-' 'DPTESTXXXX-22-' 'DPTESTXXXX-23-' 'DPTESTXXXX-24-' 'DPTESTXXXX-25-' 'DPTESTXXXX-26-' 'DPTESTXXXX-27-' 'DPTESTXXXX-28-');
for i in ${Issues[@]}; do
git checkout -b "$i"'do-this-rc1'
....
done
所以在输出中我有一个新的 git 分支,名称为 DPTESTXXXX-'numbers'-do-this-rc1 用于列表中的所有元素。
现在我需要相同的,即 -> git checkout -b "$i"'do-this-**rc1**'
,但仅适用于列表中的每第三个元素。
-> git checkout -b "$i"'do-this-**rc2**'
每四个元素。
在 bash 中执行此操作的最佳方法是什么?
如果我正确地理解了这一点,您想要 select 每 3 个条目和每 4 个条目到 运行 git 命令。这可能是您需要的,请查看:
#!/bin/bash
declare -a Issues=( 'DPTESTXXXX-15-'
'DPTESTXXXX-16-'
'DPTESTXXXX-17-'
'DPTESTXXXX-18-'
'DPTESTXXXX-19-'
'DPTESTXXXX-20-'
'DPTESTXXXX-21-'
'DPTESTXXXX-22-'
'DPTESTXXXX-23-'
'DPTESTXXXX-24-'
'DPTESTXXXX-25-'
'DPTESTXXXX-26-'
'DPTESTXXXX-27-'
'DPTESTXXXX-28-' );
for((n=0;n<${#Issues[@]};n++)); do
if (( $(($n % 3 )) == 0 )); then
# Run every 3 entries
git checkout -b "${Issues[$n]}"'do-this-rc1'
fi
if (( $((n % 4 )) == 0 )); then
# Run every 4 entries
git checkout -b "${Issues[$n]}"'do-this-rc2'
fi
done
我的脚本中有下一个列表
....
declare -a Issues=('DPTESTXXXX-15-' 'DPTESTXXXX-16-' 'DPTESTXXXX-17-' 'DPTESTXXXX-18-' 'DPTESTXXXX-19-' 'DPTESTXXXX-20-' 'DPTESTXXXX-21-' 'DPTESTXXXX-22-' 'DPTESTXXXX-23-' 'DPTESTXXXX-24-' 'DPTESTXXXX-25-' 'DPTESTXXXX-26-' 'DPTESTXXXX-27-' 'DPTESTXXXX-28-');
for i in ${Issues[@]}; do
git checkout -b "$i"'do-this-rc1'
....
done
所以在输出中我有一个新的 git 分支,名称为 DPTESTXXXX-'numbers'-do-this-rc1 用于列表中的所有元素。
现在我需要相同的,即 -> git checkout -b "$i"'do-this-**rc1**'
,但仅适用于列表中的每第三个元素。
-> git checkout -b "$i"'do-this-**rc2**'
每四个元素。
在 bash 中执行此操作的最佳方法是什么?
如果我正确地理解了这一点,您想要 select 每 3 个条目和每 4 个条目到 运行 git 命令。这可能是您需要的,请查看:
#!/bin/bash
declare -a Issues=( 'DPTESTXXXX-15-'
'DPTESTXXXX-16-'
'DPTESTXXXX-17-'
'DPTESTXXXX-18-'
'DPTESTXXXX-19-'
'DPTESTXXXX-20-'
'DPTESTXXXX-21-'
'DPTESTXXXX-22-'
'DPTESTXXXX-23-'
'DPTESTXXXX-24-'
'DPTESTXXXX-25-'
'DPTESTXXXX-26-'
'DPTESTXXXX-27-'
'DPTESTXXXX-28-' );
for((n=0;n<${#Issues[@]};n++)); do
if (( $(($n % 3 )) == 0 )); then
# Run every 3 entries
git checkout -b "${Issues[$n]}"'do-this-rc1'
fi
if (( $((n % 4 )) == 0 )); then
# Run every 4 entries
git checkout -b "${Issues[$n]}"'do-this-rc2'
fi
done