shell Bash脚本:在带有-s标志的`read`命令后添加换行符

fdbelqdn  于 12个月前  发布在  Shell
关注(0)|答案(1)|浏览(114)

我正在编写一个BASH脚本,它将在一台(新的)Linux机器上安装和配置git,并克隆用户选择的存储库。该脚本需要几个参数,我尝试使用read命令来处理,如下所示:

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

在第一行中,我添加了-s标志,以使用户的输入静音,这样它就不会显示在终端上。然而,当我在输入后点击enter时,下一个命令只是在同一行上运行。
1.我的第一次尝试是尝试在第一行添加一个新的行字符,然后添加到第二行:
read -s -p "Please enter PAT: \n" pat
read -p $"\nPlease enter username: " username。两个人都在终端上打印了\n
1.然后我尝试在两行上使用$扩展字符:
read -s -p $"Please enter PAT: \n" pat;以及
read -p "Please enter PAT: "$"\n" -s pat
read -s -p $"\nPlease enter username: " username。这些也只是打印了\n字符。
出于无奈,我甚至试图从echo借出-e标志;很明显这并不管用
我期望这些行只是在单独的行上一个接一个地打印。我知道这看起来像是一个小问题,但我可以想象对于不太熟悉shell的用户来说,这是多么令人困惑。

vpfxa7rd

vpfxa7rd1#

根据命令的手册页,使用此选项:

不要将反斜杠视为转义字符。反斜杠被认为是该行的一部分。特别是,反斜杠-换行符对不能用作行的延续。如果没有此选项,输入中的任何反斜杠都将被丢弃。你应该总是使用-r选项。

相关问题