我正在尝试通过SSH创建具有sudo用户权限的目录。
这是我形成的命令
some_command "ssh -t userA@host bash -c \"\'sudo -u userB bash -c \" mkdir -p /home/userB/dir_to_create \" \'\" "
此处some_command
是expect
脚本的一部分。
我收到此错误: -
[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"
它有效。
答案 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' \" "
诀窍是,单引号和双引号展示位置使得这个剧本中的所有魔法都发生了。