You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本中带-s参数的read命令后添加换行的问题

解决Bash脚本中read -s后提示内容同行的问题

你遇到的问题是因为read -s在用户输入回车后不会自动输出换行符,导致下一条read的提示会跟在同一行。以下几种方法可以解决:

方法一:在read -s后手动添加echo

这是最简单直接的方式,在隐藏输入的read命令执行完后,用echo输出一个换行:

read -s -p "Please enter a valid Personal Access Token(PAT): " pat
echo
read -p "Please enter your Github username: " username

方法二:用printf替代read -p处理提示

read -p不会解析字符串中的转义字符,而printf可以正确处理转义序列。先通过printf输出提示,再执行read:

printf "Please enter a valid Personal Access Token(PAT): "
read -s pat
echo
printf "Please enter your Github username: "
read username

方法三:结合&&在read后输出换行

可以把echo和read命令用&&连接,在read执行完成后立即输出换行:

read -s -p "Please enter a valid Personal Access Token(PAT): " pat && echo $'\n'
read -p "Please enter your Github username: " username

为什么之前的方法无效

read -p的参数会被直接当作纯字符串输出,不会解析\n这类转义字符,所以不管是直接加\n还是用$"\n",都会被当成普通字符打印出来,无法实现换行效果。

内容的提问来源于stack exchange,提问作者Koyejo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:29:50