3

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

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

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 of 55 已完成

每次迭代,索引都应该被替换,而不是其他字符。

谢谢基兰

4

2 回答 2

6

您可以打印\r返回到行首,这样您就可以用新消息覆盖最后打印的内容:

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

这看起来只是$I数字会发生变化。

于 2010-02-24T09:27:04.537 回答
3

你忘了增加 $index 变量。((index++)). 您还可以在此处查看执行进度条的脚本

这是一个穷人的版本

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
于 2010-02-24T09:20:05.647 回答