在某些行Bash上读取并回显

时间:2014-09-25 14:06:09

标签: bash shell sed

您好我想读取一个命令并在某行上打印。

示例: 我使用一个函数,我将值读入ab然后回显这些值和一些操作的结果:

1. $ 5 plus 5
2. $  = 10

在1.行上我正在阅读变量ab,之后我按Enter键和echo结果但是在新行上。读命令需要输入并输入终端给你换行。

它应该如何:

1. $ 5 plus 5 = 10

我尝试使用sed而没有运气。

编辑:我使用简单:

$read a b c
#a=5 b=plus c=5

1 个答案:

答案 0 :(得分:1)

使用ANSI转义码上一行并清除该行:

#!/bin/bash
read -p 'equation: ' operand1 operation operand2
# magic to transform "plus" to "+" left to the reader
let answer="$operand1 $operation $operand2"
echo -e "\033[F\033[K$operand1 $operation $operand2 = $answer"

参考:https://en.wikipedia.org/wiki/ANSI_escape_code

经过反思,为了清楚起见,我将其分为两个陈述:

echo -ne "\033[F\033[K"   # move the cursor and clear the line
echo "$operand1 $operation $operand2 = $answer"