Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4193863
  • 博文数量: 776
  • 博客积分: 13014
  • 博客等级: 上将
  • 技术积分: 10391
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 17:00
文章分类

全部博文(776)

文章存档

2015年(55)

2014年(43)

2013年(147)

2012年(20)

2011年(82)

2010年(429)

分类:

2010-02-24 22:24:23

  1. #!/bin/sh   
  2. let key=0   
  3. function ftok() {   
  4.     pathname=$1;   
  5.     proj_id=$2;   
  6.   
  7.     str_st_ino=`stat --format='%i' "${pathname}" 2>/dev/null`;   
  8.     str_st_dev=`stat --format='%d' "${pathname}" 2>/dev/null`;   
  9.     if [ "x${str_st_ino}" = "x" -o "x${str_st_dev}" = "x" ] ; then   
  10.         return 1;   
  11.     fi   
  12.   
  13.     let st_ino=${str_st_ino}   
  14.     let st_dev=${str_st_dev}   
  15.   
  16.     # 注意这里的位操作运算符需要加转义符   
  17.     let key1=${st_ino}\&16#FFFF   
  18.     let key2=${st_dev}\&16#FF   
  19.     let key2=${key2}\<\<16   
  20.     let key3=${proj_id}\&16#FF   
  21.     let key3=${key3}\<\<24   
  22.     let key=${key1}\|${key2}   
  23.     let key=${key}\|${key3}   
  24. }   
  25.   
  26. function echohelp(){   
  27.     echo "ftok generator"   
  28.     echo "Usage:ftok pathname projid"   
  29.     exit 5   
  30. }   
  31.   
  32. if [ $# -ne 2 ] ; then   
  33.     echohelp   
  34. fi   
  35.   
  36. sPathName=$1   
  37. let nProjectID=$2   
  38.   
  39. if [ "${sPathName:0:1}" != "/" ] ; then   
  40.     sPathName=${PWD}/${sPathName}   
  41. fi   
  42.   
  43. if ! test -f ${sPathName} ; then   
  44.     echo "No File Found![${sPathName}]"   
  45.     exit 4   
  46. fi   
  47.   
  48. ftok "${sPathName}" "${nProjectID}"   
  49. echo ${key}   

 原文地址
阅读(839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~