部署bash脚本。If、else和ssh

部署bash脚本。If、else和ssh,bash,shell,ssh,Bash,Shell,Ssh,我制作了deploybash脚本,但遇到了一个问题。我不明白如何使用if/else来选择服务器并在服务器上运行命令。我希望使用参数运行脚本: sh deploy.sh beta版 或 sh deploy.sh生产 我的剧本: #!/bin/bash production='user@production_server' beta='user@beta_server' demon_path='demon' params=$1 if [[ params == "production" ]]

我制作了deploybash脚本,但遇到了一个问题。我不明白如何使用if/else来选择服务器并在服务器上运行命令。我希望使用参数运行脚本:

sh deploy.sh beta版

sh deploy.sh生产

我的剧本:

#!/bin/bash

production='user@production_server'
beta='user@beta_server'
demon_path='demon'
params=$1

if [[ params == "production" ]]
  then ssh -A $production
else
  ssh -A $beta
fi

"
cd $demon_path

git checkout master
git pull --rebase

touch restart.txt

exit
"
这里的文档可以帮助您

您可以使用自定义分隔符作为服务器上要执行的一组命令

ssh user@hostname << EOF
#some commands to be excecuted.
EOF
这使得
EOF
之前的命令可以在
production\u服务器中执行

此处的文档可以帮助您

您可以使用自定义分隔符作为服务器上要执行的一组命令

ssh user@hostname << EOF
#some commands to be excecuted.
EOF
这使得
EOF
之前的命令可以在
production\u服务器中执行

此处的文档可以帮助您

您可以使用自定义分隔符作为服务器上要执行的一组命令

ssh user@hostname << EOF
#some commands to be excecuted.
EOF
这使得
EOF
之前的命令可以在
production\u服务器中执行

此处的文档可以帮助您

您可以使用自定义分隔符作为服务器上要执行的一组命令

ssh user@hostname << EOF
#some commands to be excecuted.
EOF
这使得
EOF
之前的命令可以在
生产服务器中非常简单地执行

#!/bin/bash

if [[ "$1" == "production" ]]; then
    server='user@production_server'
else
    server='user@beta_server'
fi

ssh -A "$server" "cd demon
    git checkout master
    git pull --rebase
    touch restart.txt"
很简单,

#!/bin/bash

if [[ "$1" == "production" ]]; then
    server='user@production_server'
else
    server='user@beta_server'
fi

ssh -A "$server" "cd demon
    git checkout master
    git pull --rebase
    touch restart.txt"
很简单,

#!/bin/bash

if [[ "$1" == "production" ]]; then
    server='user@production_server'
else
    server='user@beta_server'
fi

ssh -A "$server" "cd demon
    git checkout master
    git pull --rebase
    touch restart.txt"
很简单,

#!/bin/bash

if [[ "$1" == "production" ]]; then
    server='user@production_server'
else
    server='user@beta_server'
fi

ssh -A "$server" "cd demon
    git checkout master
    git pull --rebase
    touch restart.txt"

您可以使用一些特定于bash的功能,如关联数组:

#!/bin/bash

declare -A dest=(
    [production]='user@production_server'
    [beta]='user@beta_server'
)
demon_path='demon'

if [[ -z ${dest[$1]} ]]; then
    echo "error: choose one of ${!dest[*]}"
    exit 1
fi

ssh -a "${dest[$1]}" <<END
cd $demon_path && {
    # only execute the git commands if cd succeeded
    git checkout master
    git pull --rebase
    touch restart.txt
}
END
#/bin/bash
宣布-目的地=(
[生产]='user@production_server'
[beta]='user@beta_server'
)
恶魔之路
如果[[-z${dest[$1]}]];然后
echo“错误:选择${!dest[*]}之一”
出口1
fi

ssh-a“${dest[$1]}”您可以使用一些特定于bash的特性,如关联数组:

#!/bin/bash

declare -A dest=(
    [production]='user@production_server'
    [beta]='user@beta_server'
)
demon_path='demon'

if [[ -z ${dest[$1]} ]]; then
    echo "error: choose one of ${!dest[*]}"
    exit 1
fi

ssh -a "${dest[$1]}" <<END
cd $demon_path && {
    # only execute the git commands if cd succeeded
    git checkout master
    git pull --rebase
    touch restart.txt
}
END
#/bin/bash
宣布-目的地=(
[生产]='user@production_server'
[beta]='user@beta_server'
)
恶魔之路
如果[[-z${dest[$1]}]];然后
echo“错误:选择${!dest[*]}之一”
出口1
fi

ssh-a“${dest[$1]}”您可以使用一些特定于bash的特性,如关联数组:

#!/bin/bash

declare -A dest=(
    [production]='user@production_server'
    [beta]='user@beta_server'
)
demon_path='demon'

if [[ -z ${dest[$1]} ]]; then
    echo "error: choose one of ${!dest[*]}"
    exit 1
fi

ssh -a "${dest[$1]}" <<END
cd $demon_path && {
    # only execute the git commands if cd succeeded
    git checkout master
    git pull --rebase
    touch restart.txt
}
END
#/bin/bash
宣布-目的地=(
[生产]='user@production_server'
[beta]='user@beta_server'
)
恶魔之路
如果[[-z${dest[$1]}]];然后
echo“错误:选择${!dest[*]}之一”
出口1
fi

ssh-a“${dest[$1]}”您可以使用一些特定于bash的特性,如关联数组:

#!/bin/bash

declare -A dest=(
    [production]='user@production_server'
    [beta]='user@beta_server'
)
demon_path='demon'

if [[ -z ${dest[$1]} ]]; then
    echo "error: choose one of ${!dest[*]}"
    exit 1
fi

ssh -a "${dest[$1]}" <<END
cd $demon_path && {
    # only execute the git commands if cd succeeded
    git checkout master
    git pull --rebase
    touch restart.txt
}
END
#/bin/bash
宣布-目的地=(
[生产]='user@production_server'
[beta]='user@beta_server'
)
恶魔之路
如果[[-z${dest[$1]}]];然后
echo“错误:选择${!dest[*]}之一”
出口1
fi

ssh-a“${dest[$1]}”是一个Bash脚本。不要用
sh
执行它。这是一个Bash脚本。不要用
sh
执行它。这是一个Bash脚本。不要用
sh
执行它。这是一个Bash脚本。不要使用
sh
执行它。您仍然缺少
$params
上的美元符号。此外,它应该正确地用双引号括起来。here文档的结尾词不能有任何其他字符,包括空格。不必要地重复相同的代码也是一种反模式。
$params
上仍然缺少美元符号。此外,它应该正确地用双引号括起来。here文档的结尾词不能有任何其他字符,包括空格。不必要地重复相同的代码也是一种反模式。
$params
上仍然缺少美元符号。此外,它应该正确地用双引号括起来。here文档的结尾词不能有任何其他字符,包括空格。不必要地重复相同的代码也是一种反模式。
$params
上仍然缺少美元符号。此外,它应该正确地用双引号括起来。here文档的结尾词不能有任何其他字符,包括空格。不必要地重复相同的代码也是一种反模式。