【问题标题】:How do I pass a command containing "-c" to a remote machine using SSH?如何使用 SSH 将包含“-c”的命令传递给远程机器?
【发布时间】:2019-12-25 05:49:26
【问题描述】:

我正在使用 SSH 将命令传递给远程机器。该命令是更新我的 Plex 媒体服务器,所以它的长格式是:

ssh myhost $PATHTOPLEXSCANNER -c 3 -s

“-c 3 -s”是 Plex Media Scanner 需要的参数。我不能把 -c 排除在外。

当我在脚本中运行它时,我收到一个错误:“未知密码类型 '3'”。我知道这是因为 SSH 将参数的 -c 部分解释为密码规范。

如果我在提示符下键入此命令,它运行良好。 如果我在脚本中运行完全相同的命令,我会收到密码错误。 如何将“-c 3 -s”参数传递给远程机器?

完整的命令是:

ssh myhost '/Applications/Plex\ Media\ Server.app/Contents/MacOS/Plex\ Media\ Scanner' -c 3 -s

【问题讨论】:

    标签: shell ssh command-line arguments


    【解决方案1】:

    你可以用双引号括起来。

    ssh myhost "$PATHTOPLEXSCANNER -c 3 -s"

    【讨论】:

    • 谢谢。我试过了,但现在我得到了一个不同的错误:bash: -c: command not found
    • $PATHTOPLEXSCANNER的值是多少
    • 我是'/Applications/Plex\ Media\ Server.app/Contents/MacOS/Plex\ Media\ Scanner'
    • 您提到了从命令行运行它和在脚本中运行它之间的区别。您确定在脚本中设置了变量吗?该错误听起来您的命令等同于ssh myhost "-c 3 -s",与未设置PATHTOPLEXSCANNER 一致。
    • 好收获。我在登录时设置了PATHTOPLEXSCANNER,而不是在脚本中。当我在脚本本身中重新定义它时,一切正常!非常感谢!
    猜你喜欢
    • 2015-07-05
    • 2012-07-18
    • 2023-03-17
    • 2014-12-26
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2011-03-19
    相关资源
    最近更新 更多