【发布时间】:2020-01-19 12:25:51
【问题描述】:
我是 shell 脚本的新手,目前我有一个名为 deploy.sh 的 shell 脚本,它可以采用一些选项,例如 -n namespaceName -a appName 等,如下所示。
./deploy.sh -n namespaceA -a appB
但是当我通过 SSH 像下面这样执行它时,它不起作用,
ssh root@$remoteHost 'bash -s' < deploy.sh -n namespaceA -a appB
当我修改脚本以直接接受参数而不是选项时(如上),它工作正常。
ssh root@$remoteHost 'bash -s' < deploy.sh namespaceA appB
有没有办法将选项传递给它?任何人都可以解释一下吗? TIA。
【问题讨论】:
-
使用getopts 应该对你有用。此外,如果您将
#!/bin/bash放在脚本的顶部,则不必在命令行中调用bash -s... -
ssh root@$remoteHost "./deploy.sh -n namespaceA -a appB"? -
@Cyrus 我试过了,它不起作用。提示
bash: ./deploy.sh: No such file or directory,确实存在同一个目录。 -
@Jamie_D 我在 deploy.sh 文件中使用 getopts 命令,不,它也不起作用,
#!/bin/bash ssh root@10.100.111.11 deploy.sh -n namespaceA -a appB它说 `deploy.sh: command not found`