Bash 为什么sudo-s';printf";"';不能处理换行?
直接调用以下命令时,可以正确打印换行符Bash 为什么sudo-s';printf";"';不能处理换行?,bash,shell,newline,Bash,Shell,Newline,直接调用以下命令时,可以正确打印换行符 printf "abc def" 但是当用sudo-s调用它时,新行被忽略了 sudo -s "printf 'abc def'" $SHELL正在使用bash 似乎是sudo删除换行符。如果尝试在新的bash实例中运行相同的命令,换行符仍然存在: bash -c "printf 'abc def'" 是的,但是当您使用“\n”或“\r\n”时,sudo-s也可以正确打印它,按enter键与“\n”有什么不同?虽然在unix中,如果使用\n,则按en
printf "abc
def"
但是当用sudo-s调用它时,新行被忽略了
sudo -s "printf 'abc
def'"
$SHELL正在使用bash 似乎是
sudo
删除换行符。如果尝试在新的bash实例中运行相同的命令,换行符仍然存在:
bash -c "printf 'abc
def'"
是的,但是当您使用“\n”或“\r\n”时,sudo-s也可以正确打印它,按enter键与“\n”有什么不同?虽然在unix中,如果使用
\n
,则按enter键与“\n”相同,sudo将看到两个字符,
,这将在以后被printf
解释为换行符。但是如果在字符串中放入换行符,sudo会将其视为换行符,并将其删除。