为什么?

为什么?

当我将多个命令粘贴到 Putty 窗口中时,
命令在第一个命令之后停止执行sudo

为什么?

我的剪贴板(我小心地在第二条命令后也复制了换行符)

sudo -u smith echo aaaaaaaa ;

echo bbbbbbbb ;

结果:

$ sudo -u smith echo aaaaaaaa ;

echo bbbbbbbb ;

aaaaaaaa
$

它按预期执行echo aaaaaaaa,但第二条命令未执行。

设置:我通过 putty 从 Windows 10 连接到红帽服务器,shell 是 bash。


调试尝试

似乎sudo以某种方式劫持了粘贴的输入。(-n选项没有帮助)

# Given clipboard:
sleep 5s
echo bbbbbb

# Result is:
$ sleep 5s
$ echo bbbbbb # <-- this line gets onto screen AFTER sleep has finished
bbbbbb

但如果睡觉结束sudo

Given clipboard:
sudo -u smith sleep 5s
echo bbbbbb

# Result is:
$ sudo -u smith sleep 5s
echo bbbbbb # <-- this line gets onto screen BEFORE sleep has finished

答案1

简短的回答,在每行末尾使用反斜杠,但最后一行除外。

sudo -u smith sleep 5s;\
echo bbbbbb

这会起作用。

相关内容