Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 带进度条的shell命令_Bash_Shell_Unix - Fatal编程技术网

Bash 带进度条的shell命令

Bash 带进度条的shell命令,bash,shell,unix,Bash,Shell,Unix,我想问你一个小问题, 如果我有这个进度条 在这个代码中,我可以在我的循环中组合到哪里 for i in `cat server` do ssh -o "BatchMode=yes" -o StrictHostKeyChecking=no $i " (df -h /var | tr '\n' ',') & (hostname)| tr '\n' ',' " ;echo 2>&1 | tee >> /tmp/check_var2.csv done 您可以将for

我想问你一个小问题, 如果我有这个进度条

在这个代码中,我可以在我的循环中组合到哪里

for i in `cat server`
do ssh -o "BatchMode=yes" -o StrictHostKeyChecking=no $i " (df -h /var | tr '\n' ',') & (hostname)| tr '\n' ',' " ;echo 2>&1 | tee >> /tmp/check_var2.csv

done

您可以将for循环组合为:

X=0
服务器=($(cat服务器))
对于“${SERVERS[@]}”中的i;做
ssh-o“BatchMode=yes”-o StrictHostKeyChecking=no$i”(df-h/var | tr'\n'',')和(主机名)| tr'\n'',';echo 2>&1|tee>/tmp/check_var2.csv
((X=X+1))
ProgressBar${X}${#服务器[@]}
完成

您可以将for循环组合为:

X=0
服务器=($(cat服务器))
对于“${SERVERS[@]}”中的i;做
ssh-o“BatchMode=yes”-o StrictHostKeyChecking=no$i”(df-h/var | tr'\n'',')和(主机名)| tr'\n'',';echo 2>&1|tee>/tmp/check_var2.csv
((X=X+1))
ProgressBar${X}${#服务器[@]}
完成

这里已经是一切了

:

:


for((i=1;i这里已经是一切了

:

:

for((i=1;i我会这样做(详见代码注释):

!/usr/bin/env bash
#服务器文件
声明-r servers='servers'
#准备CSV输出文件
声明-r csv_out='/tmp/check_var2.csv'
rm-f“$csv_out”
#打印带有标题的第一行CSV
echo“文件系统、大小、已用、可用、使用%、挂载于、主机名”>“$csv\u out”
#准备通过ssh发送到远程服务器的命令脚本
#生成CSV数据:
#文件系统、大小、已用、可用、使用%、已装入、主机名
declare--ssh_脚本
如果s=read-r-d''ssh_脚本我会这样做(详细信息请参见代码注释):

!/usr/bin/env bash
#服务器文件
声明-r servers='servers'
#准备CSV输出文件
声明-r csv_out='/tmp/check_var2.csv'
rm-f“$csv_out”
#打印带有标题的第一行CSV
echo“文件系统、大小、已用、可用、使用%、挂载于、主机名”>“$csv\u out”
#准备通过ssh发送到远程服务器的命令脚本
#生成CSV数据:
#文件系统、大小、已用、可用、使用%、已装入、主机名
declare--ssh_脚本

IFS=read-r-d''ssh\u脚本您希望显示哪种进度?从文件
服务器
中读取了多少行?该命令只是一个示例..我希望它在运行后显示循环进度(一些命令需要时间,例如清理索引节点或naking其他东西..),大约是2行,共2台服务器(服务器列表)您想显示什么样的进度?从文件
server
中读取了多少行?该命令只是一个示例..我希望它在运行后显示循环进度(一些命令需要花费时间,例如清理索引节点或naking其他东西..),大约2行,共2台服务器(服务器列表)
for i in `cat server`
do ssh -o "BatchMode=yes" -o StrictHostKeyChecking=no $i " (df -h /var | tr '\n' ',') & (hostname)| tr '\n' ',' " ;echo 2>&1 | tee >> /tmp/check_var2.csv

done
mapfile -t server < server
end=${#server[@]}
for (( i=1; i <= end; i++ )); do
  ProgressBar "$i" "$end"
  echo do something
done