相关疑难解决方法(0)

Python打印状态栏和百分比

要实现如下状态栏:

[==========                ]  45%
[================          ]  60%
[==========================] 100%
Run Code Online (Sandbox Code Playgroud)

我希望将它打印到stdout,并保持刷新,而不是打印到另一行.这该怎么做?

python

140
推荐指数
12
解决办法
15万
查看次数

使用BASH显示进度(工作)指示器

使用仅限bash脚本,如何提供bash进度指示器?

所以我可以运行命令表单bash,并且在执行该命令时让用户知道某些事情仍在发生.

unix bash shell progress

52
推荐指数
8
解决办法
8万
查看次数

在shell脚本中创建重复字符串

我需要生成一串点(.字符)作为变量.

即,在我的Bash脚本中,输入15我需要生成这个长度为15的字符串:...............

我需要这样做.我尝试使用它作为基础(来自Unix.com):

for i in {1..100};do printf "%s" "#";done;printf "\n"
Run Code Online (Sandbox Code Playgroud)

但是如何让100成为一个变量呢?

unix shell

38
推荐指数
5
解决办法
4万
查看次数

使用运行脚本时更新Xcode构建进度条

在Xcode中,您可以指定自定义脚本来构建应用程序.我有一个广泛使用这些项目的项目.例如,一个目标构建模拟器版本(32位和64位)和ARM版本以及文档,然后将生成的静态库与其他一些文件捆绑到一个框架中

运行上面的代码可能需要几分钟.通常在构建时,Xcode在屏幕顶部有一个进度条.当您使用这些脚本时,它会填充一小部分,然后停在那里直到您的脚本完成.

如果有办法告诉Xcode更新这个进度条会很好吗?它不一定是完美的,只是提供一些反馈,表明某些事情正在发生,并且构建过程没有停滞.

谢谢!

xcode build

17
推荐指数
1
解决办法
876
查看次数

如何在 bash for 循环中使用 tqdm?

例如,我有一个for loop需要很长时间才能完成的例子,所以我想用tqdm一个像 python 一样的漂亮的进度条。但我找不到任何方法可以做到这一点?

for f in `find mydir -name *.jpg -print`; do cp $f images/${f//\//_}; done
Run Code Online (Sandbox Code Playgroud)

如何获得此循环的进度条?

bash loops for-loop progress-bar tqdm

14
推荐指数
2
解决办法
6693
查看次数

Bash进度条

我正在使用以下脚本浏览whois中的大型域名列表并找到注册商(对于服务器/ DNS迁移非常有用),并且工作正常.

但是,为了方便起见,我想将进度条纳入其中.这是我的脚本,如果可以改进,请告诉我:

#!/bin/bash
for f in `cat /var/www/vhosts/domainlist`
 do
   if
   domain=$f
   [ "$domain" ] ;
   then
    whois $f | grep -i domainregistrar > /dev/null
     if
     [ $? -le 0 ] ;
     then
      echo $f >> our_registrar
     else
      echo $f >> external_registrar
     fi
   fi
 done
echo "Done, check our_registrar file."
Run Code Online (Sandbox Code Playgroud)

我先试过这个:http://moblog.bradleyit.com/2010/02/simple-bash-progress-bar-function.html

然后这个,但没有运气.

您认为在该脚本中实现进度条的最简单方法是什么?

bash progress-bar

9
推荐指数
3
解决办法
2万
查看次数

如何将进度条添加到somearchive.tar.xz提取

我想打印至少提取的print#文件,从运行tarball提取

xz -dc /path/to/somearchive.tar.xz | sudo tar xvpf - -C /path/to/some_directory
Run Code Online (Sandbox Code Playgroud)

我在考虑使用作为中提到的"\ r"的这个问题,例如

num=0
when [\n received]
    num=$(($num + 1))
    echo -ne "$num files extracted \r"
end when
Run Code Online (Sandbox Code Playgroud)

我的bash技能让我失望.

bash tar

5
推荐指数
4
解决办法
2万
查看次数

Bash - 正确清除最后一个输出

我正在尝试创建一个可更新的进度状态。为了做到这一点,我需要能够完全清除最后一个输出,以便我可以更新它。回车可以工作,但是当输出超过终端宽度并回绕时,将无法清除最后一个输出。所以我正在使用 tput:

n=0
while [[ $n -ne 100 ]]; do
    n=$((n+1))
    tput ed #clear
    tput sc #save cursor
    echo -n "Progress: ${n}%"
    tput rc #restore cursor
    sleep 1s
done
echo
Run Code Online (Sandbox Code Playgroud)

但是,如果输出足够长以致于强制终端向上滚动,这将失败。发生这种情况时,保存的光标位置不再正确,并且无法正确清除最后的输出。

例如,如果光标当前在终端的底部并且输出比终端宽度长,则会强制终端向上滚动,使之前保存的光标位置无效。

那么有没有什么办法可以保证Bash中的光标永远不会到终端结束呢?或者也许还有其他一些替代方法来防止这个问题?

编辑:我根据 F. Hauri 的回答制作了我自己的版本,简化了我的用例

#!/bin/bash
str=$(head -c 338 < /dev/zero | tr '\0' '\141')
len="${#str}"
col=$(tput cols)
lines=$(( ((len + col - 1) / col) - 1 ))

echo -ne "${str}\r"
(( len > col )) && tput cuu "$lines"

sleep 3s

tput ed
Run Code Online (Sandbox Code Playgroud)

bash tput

5
推荐指数
1
解决办法
171
查看次数

Bash中的退格

你如何退回你刚刚用bash编写的那一行并在它的位置放一个新的?我知道这是可能的,Aptitude(apt-get)将它用于一些更新的东西,它看起来很棒.

bash backspace

4
推荐指数
1
解决办法
5940
查看次数

带有其他输出的命令行进度条

在命令行上获取进度条的一种流行方法是使用回车符,它会覆盖上一行,如以下脚本所示:

#!/bin/bash
echo -ne '[#   ] 25%\r'
sleep 1
echo -ne '[##  ] 50%\r'
sleep 1
echo -ne '[### ] 75%\r'
sleep 1
echo -ne '[####] 100%\r'
Run Code Online (Sandbox Code Playgroud)

这是可行的......如果你需要打印一个进度条。但是更复杂的脚本可能希望在输出诊断输出的同时打印进度条。您希望命令行应用程序的缓冲区按如下方式演变(以 分隔----):

[#   ] 25%
----
msg1
[#   ] 25%
----
msg1
msg2
[#   ] 25%
----
msg1
msg2
[##  ] 50%
Run Code Online (Sandbox Code Playgroud)

等等。现在,流行的方法失败了:

#!/bin/bash
echo -ne '[#   ] 25%\r'
echo "msg 1"
sleep 1
echo "msg 2"
echo -ne '[##  ] 50%\r'
echo "msg 3"
sleep 1
echo "msg …
Run Code Online (Sandbox Code Playgroud)

bash shell terminal

3
推荐指数
1
解决办法
1093
查看次数

如何在Pharo中显示进度条?

我有一个do:Pharo,需要很长时间才能处理.我想向用户展示它的进展情况.Pharo是如何完成的?

pharo

2
推荐指数
1
解决办法
79
查看次数

PHP shell脚本'echo -ne'怎么样?(Shell Progressbar)

我有一个PHP脚本,我想展示它的progess.从这个超级问题和完美答案如何将进度条添加到shell脚本?我试图模仿这种行为:

shell_exec("echo -ne '######      30%'\r");
Run Code Online (Sandbox Code Playgroud)

但没有任何东西被打印到屏幕上.

我的猜测是因为STDOUT不正确,或者我必须回应回声吗?

echo shell_exec("echo -ne '######      30%'\r");
Run Code Online (Sandbox Code Playgroud)

php shell shell-exec command-line-interface echo

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

壳牌中的微调器

我为BASH 找到了这个,但我想用shell(#!/bin/sh)做同样的事情.

扭曲是使它成为一个计时器,所以像等待60秒,例如,直到它结束.

shell terminal posix sh

0
推荐指数
1
解决办法
1192
查看次数