我有以下几行提示用户输入日期/时间,我将在脚本的后面部分使用这些行:
printf "Please insert start of time window in format YYYY-MM-DD HH:MM:SS: \n"
read startDatetime
有没有办法在用户键入时,在日期的破折号、日期和时间之间的空格以及时间的冒号中动态地插入“read”提示符?我知道在Web上使用JavaScript是可以做到这一点的,但我特别希望能有一个命令行版本的该功能。
我在网上搜索了这个问题的答案,但没有找到。我在read Man Page中看到了delimiter的选项,但看不到它将如何实现我正在尝试做的事情。
2条答案
按热度按时间q8l4jmvw1#
您可以使用
read
的-N
标志限制一次读取的字符数,从而将其拼凑在一起:看起来像这样:
或者,使用将光标移回自动添加的
-
、空白和:
的选项:我们可以使用tput
来移动光标,清除该行,然后使用read -e
(使用readline进行输入)和-i
(预填充提示):这也不是完美的:额外的字符只插入一次,但不是当你回去修复的东西;并且在提示符后插入了一个新行,导致出现一个空行,这在终端仿真器的底部是显而易见的:
此时,您可以考虑使用charmbracelet/gum之类的工具,以便在终端上获得非常用户友好的交互式输入体验。
mnowg1ta2#
不,这是不可能的。但是请注意,read提供了
-p
开关: