脚本run_tasks.bash读取文本文件
脚本需要逐行读取文本文件,并执行文本文件中的脚本
关于 file.txt 的重要说明
txt 文件中的行号可能不同
例如,txt 文件中第一个运行的行可能是 12
在 txt 文件中的第二个运行行可能是例如 213 ,依此类推......
./run_tasks.bash /tmp/file.txt
文本文件示例 - file.txt
1 /tmp/run.sh
2 /var/tmp/load_run.pl
3 /etc/RT/LM.pl
.
.
我想做的是一个进程对话框进度,说明txt文件中的任务数
例如,如果 txt 文件中的任务数(行)为 34 然后对话过程会根据34个任务从0%开始到100%
或者
如果txt中的任务数(行数)为321则对话过程将从0%开始到100%引用321个任务
另一个对话框需要查看对话框中的每个破坏脚本
请指教如何根据我的要求构建对话代码
虽然我有以下对话代码但是我不明白如何使这段代码适合 txt 文件中的不同任务(行)
#!/bin/sh
#A gauge Box example with dialog
(
c=10
while [ $c -ne 110 ]
do
echo $c
echo "###"
echo "$c %"
echo "###"
((c+=10))
sleep 1
done
) |
dialog --title "A Test Gauge With dialog" --gauge "Please wait ...." 10 60 0
最佳答案
这是一个数学问题 ;) 在 items
中,我输入了您要处理的项目总数。您可能希望在那里有类似 items=$(wc -l file.txt)
的内容。要将已处理的行数转换为百分比,我执行 $(( $processed * 100/$items))
。请注意顺序,因为我们只有整数,所以通常的 processed/items*100 将不起作用。
#!/bin/bash
(
items=123
processed=0
while [ $processed -le $items ]; do
pct=$(( $processed * 100 / $items ))
echo "XXX"
echo "Processing item $processed"
echo "XXX"
echo "$pct"
processed=$((processed+1))
sleep 0.1
done
) | dialog --title "Gauge" --gauge "Wait please..." 10 60 0
关于linux - bash + linux机器中的进度对话框栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870077/