mkdir:通过 ssh 执行 sudo 时缺少操作数
mkdir: missing operand when doing sudo over ssh
我正在尝试通过 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"
有效。
ssh -t user@host "bash -c \"sudo -u otherUser bash -c 'mkdir -p /home/userB/dir_to_create'\""
应该可以
根据 Mark Plotnick 的评论,我找到了答案。
这是解决方法
spawn bash -c "ssh -t userA@host \"sudo -u userB bash -c 'mkdir -p /home/userB/perf_tools' \" "
诀窍在于,单引号和双引号的位置让所有的魔法都发生在这个脚本中。
我正在尝试通过 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"
有效。
ssh -t user@host "bash -c \"sudo -u otherUser bash -c 'mkdir -p /home/userB/dir_to_create'\""
应该可以
根据 Mark Plotnick 的评论,我找到了答案。
这是解决方法
spawn bash -c "ssh -t userA@host \"sudo -u userB bash -c 'mkdir -p /home/userB/perf_tools' \" "
诀窍在于,单引号和双引号的位置让所有的魔法都发生在这个脚本中。