代码 1 ,并发
#!/usr/bin/env sh
# 管道
tmp_fifofile=/tmp/1001.fifo
mkfifo $tmp_fifofile
exec 1001<> $tmp_fifofile
rm $tmp_fifofile
# 线程数
thread=4
for i in `seq $thread`
do
echo >&1001
done
for i in {1..254}
do
read -u 1001
{
sleep 0.5
echo >&1001
}& # 并发执行
done
wait
exec 1001>&- # 释放文件描述符
echo "all finish..."
代码 2 进度条
#!/usr/bin/env sh
i=0
b=""
array=('-' '\\' '|' '/')
while [ $i -le 100 ]
do
let idx=i%4
printf "\e[34m\033[40m[%-100s]\e[32m\033[40m [%d%%] \e[30m \033[42m [%c] \e[0m\r" "$b" "$i" "${array[$idx]}"
b+='#'
sleep 0.02
let i++
done
echo ''
想把两段代码结合在一起
# 简写
b=""
do
{
# 想在代码 1 这,显示进度条
b+="#"
echo "$b"
# b 的结果 永远等于#,不能叠加
}&
done
export b 环境变量也不行,想不到别的方法了 如果是 python ,global 声明一下就好了
想把两段代码结合在一起,或者有没相关控制并发显示进度条的例子?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.