mkdir:在ssh上执行sudo时缺少操作数

时间:2017-03-10 11:56:39

标签: bash ssh mkdir

我正在尝试通过SSH创建具有sudo用户权限的目录。

这是我形成的命令

some_command "ssh -t userA@host bash -c \"\'sudo -u userB bash -c \" mkdir -p /home/userB/dir_to_create \" \'\" "

此处some_commandexpect脚本的一部分。

我收到此错误: -

[sudo] password for userB:
mkdir: missing operand
Try `mkdir --help' for more information.
Connection to host closed.

如果我跑 sudo -u userB bash -c "mkdir /home/userB/dir_to_create"

它有效。

2 个答案:

答案 0 :(得分:0)

ssh -t user@host "bash -c \"sudo -u otherUser bash -c 'mkdir -p /home/userB/dir_to_create'\""

应该有效

答案 1 :(得分:0)

根据Mark Plotnick的评论,我找到了答案。

这是解决方案

spawn bash -c "ssh -t userA@host \"sudo -u userB bash -c 'mkdir -p /home/userB/perf_tools' \" "

诀窍是,单引号和双引号展示位置使得这个剧本中的所有魔法都发生了。