如何使用 shell 中的 'if-fi' 为特定情况向 sshpass 提供多行命令
how to supply multi-line commands to sshpass for a specific case using 'if-fi' in shell
sshpass -p "123456789" ssh -T jadams@192.168.1.85 <<'EOSSH'
if [-d "$HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version" ] then
sh $HOME/ajith/apache-tomcat-7.0.63/bin/shutdown.sh &&
rm -rf $HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version &&
mkdir $HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version
fi
EOSSH
以上代码是我正在使用的 shell 脚本的一部分
问题:
我面临的问题是我正在尝试执行一组命令以在远程 tomcat 服务器上部署 Web 应用程序,我感兴趣的是我希望能够执行多-如上所述使用 sshpass 的行命令,但出现如下错误:
-bash:第 2 行:语法错误:文件意外结束
我正在为这个用例搜索一个工作示例,或者任何相关的帮助都会有很大帮助。
我尝试了 google 搜索结果中的许多示例,但我做不到
我能够使用下面提到的代码解决问题并为我的
服务
目的:
sshpass -p "password" ssh $server_name@$server_ip bash -c "'
if [ -d "/home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version" ]; then
rm -rf /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
mkdir /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
fi
else
mkdir /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
exit;
'"
sshpass -p "123456789" ssh -T jadams@192.168.1.85 <<'EOSSH'
if [-d "$HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version" ] then
sh $HOME/ajith/apache-tomcat-7.0.63/bin/shutdown.sh &&
rm -rf $HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version &&
mkdir $HOME/ajith/apache-tomcat-7.0.63/webapps/$tag_version
fi
EOSSH
以上代码是我正在使用的 shell 脚本的一部分
问题:
我面临的问题是我正在尝试执行一组命令以在远程 tomcat 服务器上部署 Web 应用程序,我感兴趣的是我希望能够执行多-如上所述使用 sshpass 的行命令,但出现如下错误:
-bash:第 2 行:语法错误:文件意外结束
我正在为这个用例搜索一个工作示例,或者任何相关的帮助都会有很大帮助。
我尝试了 google 搜索结果中的许多示例,但我做不到
我能够使用下面提到的代码解决问题并为我的
服务
目的:
sshpass -p "password" ssh $server_name@$server_ip bash -c "'
if [ -d "/home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version" ]; then
rm -rf /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
mkdir /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
fi
else
mkdir /home/motish/ajith/apache-tomcat-7.0.63/webapps/$tag_version;
exit;
'"