我想打印如下的循环
a=0
while [ $a -lt 100 ]
do
echo ${a}%
a=`expr $a + 1`
sleep 1
done
按以下方式抛出输出
1%
2%
3%
4%
...
但是我希望将1%
的运行值2%
替换为100%
等,直到同一行中的fc.showSaveDialog(fc);
。
答案 0 :(得分:2)
您可以使用printf
打印退格字符\b
以删除已打印的字符
printf "\b%.0s" {1..5}
这将打印5
退格区,光标将移动到该行的开头。
在下一次迭代中,echo将产生新的数字
示例强>
while [ $a -lt 100 ]
do
echo -n ${a}%;
a=`expr $a + 1`
#This will remove the already printed value from the screen
printf "\b%.0s" {1..5}
sleep 1
done
或强>
您可以echo
回车
echo -e "\r"
像
while [ $a -lt 100 ]
do
echo -n ${a}%;
a=`expr $a + 1`
#This will remove the already printed value from the screen
echo -e "\r"
sleep 1
done
答案 1 :(得分:0)
function a(){
if [[ $1 -le 100 ]]; then
echo $1%
b=`expr $1 + 1`
sleep 1
clear
a $b
fi
}
a 0
我认为这是你想要的......在同一行中使用递归计数0到100