pipal 发表于 2013-1-28 14:22:43

Unix下shell对文件随机读写

在《高级Bash脚本编程指南》上有一个例子,用重定向,通过shell对文件随机读写,但那方法在Unix的sh下不管用,自己写了一个,例子如下:
 
#!/bin/sh#randRead.shecho 1234567890 > sFile exec 3<> sFile          #read -n 4 <&3          dd bs=1 count=4of=/dev/null <&3 2>/dev/nullecho . | dd bs=1 count=1 >&3 2>/dev/nullexec 3>&-            cat sFile 运行结果如下:
root@SMP2> cat -n randRead.sh      1#!/bin/sh   2echo 1234567890 > sFile      3exec 3<> sFile               4#read -n 4 <&3               5dd bs=1 count=4of=/dev/null <&3 2>/dev/null   6echo . | dd bs=1 count=1 >&3 2>/dev/null   7exec 3>&-                   8cat sFile               root@SMP2> root@SMP2> ./randRead.sh 1234.67890root@SMP2>  
 
 
 
附ABS上的例子:
87       echo 1234567890 > File    # 写字符串到"File".88       exec 3<> File             # 打开"File"并且给它分配fd 3.89       read -n 4 <&3             # 只读4个字符.90       echo -n . >&3             # 写一个小数点.91       exec 3>&-               # 关闭fd 3.92       cat File                  # ==> 1234.6789093       # 随机存储. 
页: [1]
查看完整版本: Unix下shell对文件随机读写