部署bash脚本。If、else和ssh
我制作了deploybash脚本,但遇到了一个问题。我不明白如何使用if/else来选择服务器并在服务器上运行命令。我希望使用参数运行脚本:部署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" ]]
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文档的结尾词不能有任何其他字符,包括空格。不必要地重复相同的代码也是一种反模式。