求一行命令
发表于 : 2012-02-26 22:51
代码: 全选
>0< ~$ lsmod | grep '^vboxdrv\>'
vboxdrv 1762739 4 vboxpci,vboxnetadp,vboxnetflt
>0< ~$
上例结果应该是 1,也就是引用数 4 减去后面的模块数 3。
代码: 全选
>0< ~$ lsmod | grep '^vboxdrv\>'
vboxdrv 1762739 4 vboxpci,vboxnetadp,vboxnetflt
>0< ~$
代码: 全选
lsmod | grep '^vboxdrv\>' | read x x n l; echo $l | awk -F, -v n=$n '{ print n-NF}'
代码: 全选
>0< urd$ lsmod | grep '^vboxdrv\>'
vboxdrv 1762739 4 vboxpci,vboxnetadp,vboxnetflt
>0< urd$ lsmod | grep '^vboxdrv\>' | read x x n l; echo $l | awk -F, -v n=$n '{ print n-NF}'
0
>0< urd$ lsmod | grep '^vboxdrv\>'
vboxdrv 1762739 3 vboxpci,vboxnetadp,vboxnetflt
>0< urd$ lsmod | grep '^vboxdrv\>' | read x x n l; echo $l | awk -F, -v n=$n '{ print n-NF}'
0
>0< urd$
我用的是 zsh。bash 不支持。。。。 http://stackoverflow.com/q/2746553/296473自由建客 写了:不对啊,怎么都是 0?代码: 全选
>0< urd$ lsmod | grep '^vboxdrv\>' vboxdrv 1762739 4 vboxpci,vboxnetadp,vboxnetflt >0< urd$ lsmod | grep '^vboxdrv\>' | read x x n l; echo $l | awk -F, -v n=$n '{ print n-NF}' 0 >0< urd$ lsmod | grep '^vboxdrv\>' vboxdrv 1762739 3 vboxpci,vboxnetadp,vboxnetflt >0< urd$ lsmod | grep '^vboxdrv\>' | read x x n l; echo $l | awk -F, -v n=$n '{ print n-NF}' 0 >0< urd$
代码: 全选
| perl -ne '@_ = split /\s+/; printf "%d\n", $_[2] - split /,/, $_[3]'
代码: 全选
read TMP TMP MOD_REF MOD_LST <<< "`lsmod | grep '^vboxdrv\>'`"
MOD_REF=`echo "$MOD_LST" | awk -F, -v n=$MOD_REF '{ print n-NF}'`
if [ $MOD_REF -ne 0 ]; then
echo "ERROR: Module vboxdrv is in use" >&2
exit 1
fi
代码: 全选
if [ `lsmod | awk '$1=="vboxdrv" {print $3-split($4,a,",")}'` -ne 0 ]; then
echo "ERROR: Module vboxdrv is in use" >&2
exit 1
fi