linux - cd 不能在 linux 服务器的 bash 脚本中工作?

标签 linux bash macos

我有 deploy.sh,这就是内容。

#!/bin/bash

ssh root@202.119.36.10
cd ../var/www/myProject

我运行 bash deploy.sh CD 部分不工作?我的想法是自动化我的部署,现在我必须手动转到目录,执行 git pull 并重新启动我的节点服务器。

最佳答案

你的脚本意味着:

  1. 登录到您的服务器。
  2. 注销后,在您的计算机上运行 cd ../var/www/myProject 命令。

您可以将所有命令放在 Here document

#!/bin/bash

ssh root@202.119.36.10 <<EOF
cd /var/www/myProject
EOF

通常,如果我们切换到系统文件夹,如/var/etc,我们会使用绝对路径。

或者,将您要在服务器上执行的所有命令放在一个脚本文件中。

文件deploy.sh的内容:

cd /var/www/myProject

将此脚本复制到您的服务器,然后运行它:

scp deploy.sh root@202.119.36.10:
ssh root@202.119.36.10 bash deploy.sh

或者通过here-document运行脚本

ssh root@202.119.36.10 bash < deploy.sh

关于linux - cd 不能在 linux 服务器的 bash 脚本中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365466/

相关文章:

c++ - 无法使用 boost.sh 脚本制作的 Boost 框架来制作 cpp-netlib

ruby-on-rails - 如何根据环境配置回形针保存到不同目录

linux - xls2csv + 禁用 XLS 中的空格

linux - 作为 bash 脚本调用时如何替换命令名称?

bash - 在 bash 脚本中设置别名

bash - 如何在没有交互式编辑器的情况下自动使用 Bash 创建一个 cron 作业?

python - 如何在python中将网页转换为pdf,就像打印中的另存为pdf选项一样

linux - 无法在 64 位 Linux 上运行 32 位应用程序

linux - 当前目录中文件根目录有 2 个下划线的文件

linux - 对具有数百万行的大文件进行排序