python-Shell脚本的Zip函数

我正在尝试编写一个shell脚本,该脚本将使多个目标变成多个不同的路径.我将传递一个以空格分隔的路径列表和一个以空格分隔的目标列表,脚本将为每对路径和目标使DESTDIR = $path $target.在Python中,我的脚本如下所示:...

我正在尝试编写一个shell脚本,该脚本将使多个目标变成多个不同的路径.我将传递一个以空格分隔的路径列表和一个以空格分隔的目标列表,脚本将为每对路径和目标使DESTDIR = $path $target.在Python中,我的脚本如下所示:

for path, target in zip(paths, targets):
    exec_shell_command('make DESTDIR=' + path + ' ' + target)

但是,这是我当前的shell脚本:

#! /bin/bash

packages=$1
targets=$2
target=

set_target_number () {
    number=$1
    counter=0
    for temp_target in $targets; do
        if [[ $counter -eq $number ]]; then
            target=$temp_target
        fi
        counter=`expr $counter + 1`
    done 
}

package_num=0
for package in $packages; do
    package_fs="debian/tmp/$package"
    set_target_number $package_num
    echo "mkdir -p $package_fs"
    echo "make DESTDIR=$package_fs $target"
    package_num=`expr $package_num + 1`
done

是否有一个与Python的zip函数等效的Unix工具,或者是一种通过索引从空格列表中检索元素的简便方法?谢谢.

解决方法:

使用数组:

#!/bin/bash
packages=($1)
targets=($2)
if (("${#packages[@]}" != "${#targets[@]}"))
then
    echo 'Number of packages and number of targets differ' >&2
    exit 1
fi
for index in "${!packages[@]}"
do
    package="${packages[$index]}"
    target="${targets[$index]}"
    package_fs="debian/tmp/$package"
    mkdir -p "$package_fs"
    make "DESTDIR=$package_fs" "$target"
done

本文标题为:python-Shell脚本的Zip函数

基础教程推荐