如何为Bash脚本中的所有操作一次提供密码?

时间:2019-05-10 12:00:44

标签: bash git ssh ssh-keys

我创建了一个bash脚本来将git分支推送到远程(本地服务器)。 bash脚本可以完美运行,但是我必须提供3个主要操作的密码。

#!/bin/bash

for ARGUMENT in "$@"
do
    KEY=$(echo $ARGUMENT | cut -f1 -d=)
    VALUE=$(echo $ARGUMENT | cut -f2 -d=)   

    case "$KEY" in
            API)              API=${VALUE} ;;
            SERVICE)    SERVICE=${VALUE} ;;  
            MIGRATION)    MIGRATION=${VALUE} ;;     
            *)   
    esac    


done
if [ -z "$API" ]
then
    API=$(cd /var/www/html/folder1 && git describe --contains --all HEAD)
    # TERMINAL PROMPTS FOR PASSWORD FOR PUSH
    cd /var/www/html/folder1 && git push local $API
fi

if [ -z "$SERVICE" ]
then
    SERVICE=$(cd /var/www/html/folder2 && git describe --contains --all HEAD)
    # TERMINAL PROMPTS FOR PASSWORD FOR PUSH
    cd /var/www/html/folder2 && git push local $SERVICE
fi

# TERMINAL PROMPTS FOR PASSWORD FOR PUSH
ssh user@192.168.0.247 <<-ENDSSH
    cd /home/user/clear/folder1
    echo "Changing branch to: $API"
    git checkout $API
    #sbt publishLocal
    cd /home/user/clear/folder2 
    echo "Changing branch to: $SERVICE"
    git checkout $SERVICE
    #sbt "runMain project"
ENDSSH

当前,我需要输入密码:

git push local $API
git push local $SERVICE
ssh user@192.168.0.247

有什么办法可以一次传递密码并完成所有操作。

在这里

local-存储库是具有IP 192.168.0.247的同一服务器

0 个答案:

没有答案