我在Bash中有以下内容(在Linux中)
for dir in Movies/*
do
(cd "$dir" && pwd|cut -d \/ -f5|tr -s '\n' ', ' >> ../../movielist &&
exiftool * -t -s3 -ImageSize -FileType|tr -s '\t' ',' >> ../../movielist )
echo "Movie $movies - $dir ADDED!"
let movies=movies+1
done
Run Code Online (Sandbox Code Playgroud)
但我希望这样做,以便"echo"在下一行显示以下回声(不与最后一个echo输出连接,但替换它),以使它看起来像是在更新.类似于具有百分比的进度条将如何显示在同一行上.
想要通过在任务完成时在最后一行末尾打印[确定]来做一个奇特的效果.
明白啦:
echo "$0: Starting backup process in '$backupdir'... "
sleep 3
echo '[OK]'
Run Code Online (Sandbox Code Playgroud)
我尝试不同的东西在第一回波的终点,在第二喜欢的开始\r
,\c
,\
,GOOGLE了它...没有好.
我希望它输出这个:
./backup.sh: Starting backup process in '/backup'...
...... 3秒后,添加[OK]
:
./backup.sh: Starting backup process in '/backup'... [OK]
谢谢,
我正在写一个小脚本来处理文件夹.运行时间很长,所以我想添加一个进度条.
这是迭代:
for file in */
do
#processing here, dummy code
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
拥有一个计数器并知道文件夹的数量将是一个解决方案.但我正在寻找更通用和更短的解决方案......
我希望有人会有个主意.感谢您的关注,
朱利安
编辑:
我得到了这个解决方案,它做我想要的,并且是真正的图形化:
#!/bin/bash
n_item=$(find /* -maxdepth 0 | wc -l)
i=0
for file in /*
do
sleep 1 #process file
i=$((i+1))
echo $((100 * i / n_item)) | dialog --gauge "Processing $n_item folders, the current is $file..." 10 70 0
done
Run Code Online (Sandbox Code Playgroud)
但是,我会保留fedorqui的解决方案,而不是全屏.
非常感谢您的宝贵时间