当我将多个命令粘贴到 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
这会起作用。