我试图从bash脚本在同一行读取两次用户输入。它根本不是很有用,但它很漂亮,我正在努力实现这一目标。
我的代码的相关部分如下:
#!/usr/bin/env bash
FROM_YEAR=2015
TO_YEAR=2017
read -e -p "Backup from " -i "${FROM_YEAR}" FROM_YEAR
read -e -p " to " -i "${TO_YEAR}" TO_YEAR
使用此代码,我得到以下信息:
Backup from 2015 *press enter*
to 2017
但我希望输出如下:
Backup from 2015 *press enter* to 2017
当然,我想要一个没有标记的输出(*press enter*
)。
谢谢:)
答案 0 :(得分:0)
FROM_YEAR=2015 TO_YEAR=2017
read -p "Backup from ${FROM_YEAR} to ${TO_YEAR}: " FROM_YEAR TO_YEAR
echo $FROM_YEAR $TO_YEAR
输出,如果用户输入" 3 4":
Backup from 2015 to 2017: 3 4
3 4
答案 1 :(得分:0)
总有解决方法,但它们并不总是可移植的。这很有可能会起作用:
#!/usr/bin/bash
FROM_YEAR=2015
TO_YEAR=2017
read -e -p "Backup from " -i "${FROM_YEAR}" FROM_YEAR
printf '\033[1A\033[16C'
read -e -p " to " -i "${TO_YEAR}" TO_YEAR
请注意,这是一个糟糕的黑客,如果在编辑后FROM_YEAR没有正好4位数,那么结果就不会很好。
答案 2 :(得分:0)
我猜,在初始显示之前,您可以clear
屏幕,然后在用户按下[Enter]后再次clear
屏幕,以便您可以重新显示所需内容。
我有bash脚本,菜单就是这样的。你必须重新显示所有内容,但是为了简单的需要,它可以完成工作(当然,如果你不介意清除屏幕)。