Unix下shell對檔案隨機讀寫

2021-08-31 05:56:57 字數 1235 閱讀 8573

在《高階bash指令碼程式設計指南》上有乙個例子,用重定向,通過shell對檔案隨機讀寫,但那方法在unix的sh下不管用,自己寫了乙個,例子如下:

#!/bin/sh

#randread.sh

echo 1234567890 > sfile

exec 3<> sfile

#read -n 4 <&3

dd bs=1 count=4 of=/dev/null <&3 2>/dev/null

echo . | dd bs=1 count=1 >&3 2>/dev/null

exec 3>&-

cat sfile

執行結果如下:

root@smp2> cat -n randread.sh 

1 #!/bin/sh

2 echo 1234567890 > sfile

3 exec 3<> sfile

4 #read -n 4 <&3

5 dd bs=1 count=4 of=/dev/null <&3 2>/dev/null

6 echo . | dd bs=1 count=1 >&3 2>/dev/null

7 exec 3>&-

8 cat sfile

root@smp2>

root@smp2> ./randread.sh

1234.67890

root@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.67890

93 # 隨機儲存.

shell 對檔案判斷

shell if判斷 a 檔案 如果檔案存在為真。b 檔案 如果 檔案 存在 而且 是乙個 塊 特殊 檔案為真。c 檔案 為真 如果 檔案 存在 而且 是乙個 字 特殊 檔案。d 檔案 為真 如果 檔案 存在 而且 是乙個 目錄。e 檔案 為真 如果 檔案 存在。f 檔案 為真 如果 檔案 存在 而...

Unix下常用shell命令

殺掉指定名稱的程序 k.sh ps ef grep 1 grep v grep awk xargs kill 9例 sh k.sh gjobs 系統庫路徑 usr include profile中設定環境變數 export oracle base ora inst profile中自定義命令 ali...

Shell指令碼實現對檔案編輯

常見linux檔案的編輯命令 vi vim,有時候我們想寫乙個指令碼實現對檔案編輯,這個時候,可能就不夠用了,下面介紹一些辦法 1 echo命令 shell的echo命令常用於字串的輸出 例如 root mdw zxy echo hello world file1 root mdw zxy cat ...