#!/bin/bashview code# filename:filelock
# 預設重試次數
retries="10"
# 預設操作
action="
lock
"# 用於鎖檔案的空命令
nullcmd="
'which true'
"# 設定選項
while getopts "
lur:
" opt; do
case $opt in
l) action="
lock";;
u) action="
unlock";;
r) action="
$optarg";;
esac
done
shift $(($optind - 1
))# $optind 是引數指標(選項索引)
if [ $# -eq 0 ]; then
catusage: $
0 [-l|-u] [-r retries] lockfile
where -l requests a lock (the default),
-u requests an unlock, -r x specifies a max
number of retries before it fails (default =$retries).
eof exit 1fi
# 確定是否有lockfile命令
if [ -z "
$(which lockfile | grep -v '^no ')
" ]; then
echo
"$0 failed: `lockfile` utility not found in path.
" >&2
exit 1fi
if [ "
$action
" = "
lock
" ]; then
if ! lockfile -1 -r $retries "$1"
2>/dev/null; then
echo
"$0: failed: couldn't create lockfile in time.
" >&2
exit 1fi
else
if [ ! -f "
$1" ]; then
echo
"$0: warning: lockfile $1 doesn't exist to unlock.
" >&2
exit 1fi
rm -f "$1"
fiexit
0
備註:
1、此指令碼需要保證系統中預裝了lockfile,可通過 "man 1 lockfile" 來確認,看到了相應的手冊頁就說明安裝了2、optarg:表示當前選項的引數
引數列表的初始值為1(即從$1開始)
處理帶引數的選項,值加2;
處理不帶引數的選項或非法選項,值加1
在case匹配開始的時候就已經增加,指向了下乙個選項的位置
shift $(($optind-2)) 讓當前選項(正在處理的選項)處於 $1 位置
shift $(($optind-1)) 讓下乙個選項(未處理的選項)處於 $1 位置
1 檔案測試 2 檔案操作
1 檔案測試函式 2 檔案操作 新建檔案 fopen filename,w 以 寫 的方式開啟乙個不存在的檔案,就會新建該檔案 檔案刪除 unlink 檔案複製 copy filename,aaa bb.txt 盡量使用 和相對路徑,因為linux只認 也沒有磁碟分割槽,而windows 和 都認 ...
15 4 1檔案位元組流 15 4 2檔案字元流
fileinputstream 檔案位元組輸入流 用來讀檔案 fileoutputstream 檔案位元組輸出流 用來寫檔案 demo類 public static void main string args catch filenotfoundexception e catch ioexcepti...
2 檔案 檔案操作
def fileno self,args,kwargs real signature unknown 返回檔案控制代碼在核心中的索引值,以後做io多路復用時可以用到 def flush self,args,kwargs real signature unknown 把檔案從記憶體buffer裡強制重...