bash中的状态栏

时间:2010-02-24 09:14:31

标签: bash shell statusbar

首先,感谢大家的帮助。我可以看到我的项目在几天内成功完成..

我需要知道如何在Shell脚本中放置一个状态栏,就像这样。

No_of_files=55
index=0

while [ $index -lt $No_of_files ]
do
     echo -en "$index of $No_of_Files Completed"
     index=$((index + 1))
done

预期成果: 1 of 55已完成 2/55完成

每次迭代时,都应该替换索引,但不能替换其他字符。

由于 基兰

2 个答案:

答案 0 :(得分:6)

您可以打印\r以返回到行的开头,以便您可以覆盖使用新邮件打印的最后一件事:

for (( I=0 ; I < 10 ; I++ )); do
   echo -en "\r$I of 10 completed"
   sleep 1
done
echo

这看起来只是$I数字会改变。

答案 1 :(得分:3)

你忘了增加$ index变量。 ((index++))。您还可以查看here以获取进度栏的脚本

这是一个穷人的版本

No_of_files=55
index=0

while [ $index -lt $No_of_files ]
do
     echo -ne "\r$index of $No_of_files Completed"
     ((index++))
    sleep 1
done