期望\ n和\ r之间的区别?

时间:2014-10-03 21:37:34

标签: linux bash expect

在这个特定的脚本中,他们使用\n

#!/usr/bin/expect

set password [lindex $argv 0]

spawn asadmin enable-secure-admin
expect "admin"
send "admin\n"
expect "password"
send "$password\n"
expect eof
exit

问题

\r可以使用吗?如果没有,有什么区别?

1 个答案:

答案 0 :(得分:4)

\n是换行符,Ctrl-J或字符012. \r是回车符,Ctrl-M或字符015。

在交互式unix上下文中,当您键入它们(或模拟键入它们时,如期望的那样),它们是可互换的。换行是正式的行终止符,但是tty设备通常会在输入时将回车转换为换行符。在键盘上,BKWA(带箭头的大键可能标记为“enter”或“return”)发送一个Ctrl-M,tty设备将转换为Ctrl-J。如果您的BKWA坏了,您实际上可以键入Ctrl-M或Ctrl-J,它也可以正常工作。

在输出时,它们不可互换。正如我所说,换行是正式的行终止符,因此程序(和文本文件)将指示换行符的行尾。当换行输出到tty时,tty通常会将其转换为回车换行对。

当字符实际到达显示设备时,回车将光标移动到行的开头,而换行则将其向下移动一行。