小编j.f*_*ajo的帖子

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
查看次数

Ruby net-ssh wirth 代理命令导致冻结

我想通过另一台使用 ruby​​ 连接到远程计算机。

该方案如下:

本地->代理->远程

我有这段代码正在执行直接访问的工作:

require 'net/ssh'
Net::SSH.start(remote_host, remote_user) do |ssh|
    puts ssh.exec!'hostname'
end
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用代理时,命令“主机名”被执行并且正确,但随后代码冻结,如果我调用 ssh.close 也是如此。

这是代码:

require 'net/ssh'
require 'net/ssh/proxy/command'

proxy_cmd = Net::SSH::Proxy::Command.new('ssh proxy_user@proxy_host nc %h %p')
Net::SSH.start(remote_host, remote_user, :proxy => proxy) do |ssh|
    puts ssh.exec!'hostname'
end
Run Code Online (Sandbox Code Playgroud)

借助 rsa 密钥,无需密码即可登录。并且 proxy 命令正在工作(我之前在 bash 中使用过它)

有人知道我做错了什么吗?

非常感谢您的关注,

编辑:这是日志中的最后一行,它在那里阻塞:

I, [2013-10-16T23:01:19.304778 #3785]  INFO -- net.ssh.connection.session[4555128]: closing remaining channels (0 open)
Run Code Online (Sandbox Code Playgroud)

ruby ssh ruby-on-rails net-ssh

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

标签 统计

bash ×1

for-loop ×1

iteration ×1

linux ×1

net-ssh ×1

ruby ×1

ruby-on-rails ×1

ssh ×1