gpt4 book ai didi

linux - expect 中\n 和\r 的区别?

转载 作者:IT王子 更新时间:2023-10-29 01:14:25 26 4
gpt4 key购买 nike

在这个特定的脚本中,他们使用 \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 也能被使用吗?如果不是,有什么区别?

最佳答案

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

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

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

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

关于linux - expect 中\n 和\r 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26187170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com