Linux BASH多进程并行处理的方法实现
#!/bin/bash
SEND_THREAD_NUM=13
tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名
mkfifo “$tmp_fifofile" # 新建一个随机fifo管道文件
exec 6<>"$tmp_fifofile" # 定义文件描述符6指向这个fifo管道文件
rm $tmp_fifofile
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循环 往 fifo管道文件中写入13个空行
done >&6
for i in `seq 100`;do # 100 次 for 循环 开始
read -u6 # 从文件描述符6中读取行(实际指向fifo管道)
{
echo $i # 打印 i
sleep 3 # 暂停3秒
echo >&6 # 再次往fifo管道文件中写入一个空行。
} &
# {} 这部分语句被放入后台作为一个子进程执行,所以不必每次等待3秒后执行
#下一个,这部分的echo $i几乎是同时完成的,当fifo中13个空行读完后 for循环
# 继续等待 read 中读取fifo数据,当后台的13个子进程等待3秒后,按次序
# 排队往fifo输入空行,这样fifo中又有了数据,for语句继续执行
pid=$! #打印最后一个进入后台的子进程id
echo $pid
done
wait
exec 6>&- #删除文件描述符6
exit 0
深入浅出Shell编程 Shell变量介绍
深入浅出Shell编程:Shell变量1系统变量2Shell用户变量■2.1基础■2.2使用技巧■2.3shell中的数组3shell环境变量先不要管Shell的版本,来看看Shell变量,在Shell
linux下监控网络流量的脚本
我看了下,linux下的/proc/net/dev记录了每块网卡发送和接受的包和字节数。因此萌生想法,写了一个。运行效果:[root@74-82-173-217~]#./net.shCurrentIp:inetaddr:74.8
linux shell命令的常用快捷键
Ctrl+a切换到命令行开始Ctrl+e切换到命令行末尾Ctrl+l清除屏幕内容Ctrl+u清除剪切光标之前的内容Ctrl+k剪切清除光标之后的内容Ctrl+y复制剪切板里的内容Ctrl+