变量根据参数分配文件路径?

时间:2015-02-13 16:36:37

标签: bash shell terminal

目前我有一个Shell脚本运行整个文件夹设置,然后将该文件推送到服务器

目前我有两个论据决定了做了什么,但我想通过只有一个路径调用并让参数分配结束路径或让两个路径存储在变量中然后依赖于rc或trunk被称为使用该路径?

scp $Version.zip root@i-sever.com://data/folder/rcfolder/Patch_$Version.zip;

她现在拥有的东西

 if [ "$1" = "rc" ]
    then
        scp $Version.zip root@i-sever.com://data/folder/rcfolder/Patch_$Version.zip;
    elif [ "$1" = "trunk" ]
    then
        scp $Version.zip root@i-sever.com:/data/folder/trunkfolder/Update_$Version.zip;
    fi

任何帮助都会很棒

2 个答案:

答案 0 :(得分:0)

您可以使用以下功能:

upload() {
    [[ "$1" == "rc" ]] && arg="Patch" || arg="Update"
    scp "$Version.zip" "root@i-sever.com://data/folder/$1/${arg}_${Version}.zip"
}

然后将其用作:

upload rc
upload trunk

答案 1 :(得分:0)

您可以使用关联数组:

declare -A filename=([rc]=Patch [trunk]=Update)
if [[ ${filename[$1]} ]] ; then
    scp $Version.zip root@i-sever.com:/data/folder/$1/${filename[$1]}_$Version.zip
fi