在 shell 中运行以下命令可以正常运行:
ssh user@machine systemctl status my-service.service
ssh user@machine sudo systemctl stop my-service.service
scp -r ./my-service/* user@machine:/home/user/my-service
ssh user@machine chmod +x /home/user/my-service/my-service
ssh user@machine sudo systemctl start my-service.service
ssh user@machine sudo systemctl status my-service.service
但是,将其放在deploy.sh
文件中会导致上述任何一项都无法执行。
错误:
- 无效的单元名称“my-service”被转义为“my-service\x0d”(也许你应该使用systemd-escape?)
- 找不到单元 my-service\x0d.service。
- 无效的单位名称“my-service.service”被转义为“my-service.service\x0d”(也许你应该使用systemd-escape?)
- 无法停止 my-service\x0d.service:未加载单元 my-service.service\x0d.service。: 没有这样的文件或目录nlock/
- chmod: 无法访问'/home/user/my-service/my-service'$'\r': 没有这样的文件或目录
- 无效的单位名称“my-service.service”被转义为“my-service.service\x0d”(也许你应该使用systemd-escape?)
- 无法启动 my-service.service\x0d.service:未找到单元 my-service.service\x0d.service。无效的单位名称“my-service.service”被转义为“my-service.service\x0d”(也许你应该使用systemd-escape?)
- 找不到单元 my-service.service\x0d.service。
有的被打散了。这似乎与逃避有关。出于某种原因,在行尾添加一个空格使其有点工作,但仍然不是没有错误。
谷歌搜索错误显示了一些关于使用的命中--
并将其与尾随空格一起添加使得一些命令工作但仍然给出转义错误。