如何在引号中保留\ n

时间:2014-11-13 17:56:26

标签: bash shell

所以我试图保留\ n所以它打印出来而不是bash将其解释为换行符。我正在写一个运行服务器的屏幕,该服务器需要使用\ n来启动该服务器中的换行符。 像这样调用LOGINMESSAGE

LOGINMESSAGE="Welcome to the server $INITPLAYER! \n Type !HELP for chat commands"

as_user "screen -p 0 -S $SCREENID -X stuff $'/server_message_to info \"$INITPLAYER\" \"$LOGINMESSAGE\"\n'"

在屏幕上我需要它说/ server_message_to信息信息$ INITPLAYER! "欢迎使用服务器$ INITPLAYER! \ n键入!HELP for chat命令"。所以在屏幕上需要保持\ n。目前它删除它或打破游戏的命令。所以基本上我要做的就是让它在屏幕上打字,就像保持\ n一样。

编辑:修复了chepner

1 个答案:

答案 0 :(得分:1)

问题是,LOGINMESSAGE的值最终会在$'...'引用的字符串中进行评估,其中\n对将转换为换行符。为防止这种情况发生,只需将\n之外的所有内容移至$'...'之外。 shell自动连接未用空格分隔的字符串。

as_user "screen ... '/server_message_to info \"$INITPLAYER\" \"$LOGINMESSAGE\"'$'\n'"