相关疑难解决方法(0)

如何在同一行显示和更新回声

我在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输出连接,但替换它),以使它看起来像是在更新.类似于具有百分比的进度条将如何显示在同一行上.

bash

99
推荐指数
5
解决办法
17万
查看次数

继续在同一行输出

想要通过在任务完成时在最后一行末尾打印[确定]来做一个奇特的效果.

明白啦:

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]

谢谢,

bash

28
推荐指数
2
解决办法
6万
查看次数

Linux Bash使用进度条迭代文件夹

我正在写一个小脚本来处理文件夹.运行时间很长,所以我想添加一个进度条.

这是迭代:

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的解决方案,而不是全屏.

非常感谢您的宝贵时间

linux iteration bash for-loop

6
推荐指数
1
解决办法
3095
查看次数

标签 统计

bash ×3

for-loop ×1

iteration ×1

linux ×1