2
我有,當你不帶選項運行它,解釋它的使用方法:黑客的幫助風格的信息到完成方法
Usage:
SQLbatch [database] [file] [maximum # of lines in batch] [time to sleep between batches] [who to email when finished]
最近,我一直在我的業餘時間寫標籤完成腳本:
_SQLbatch()
{
local cur dbs
COMPREPLY=()
dbs=$(< /...directory paths.../allDbs.txt)
cur="${COMP_WORDS[COMP_CWORD]}"
case "$COMP_CWORD" in
1)
case "$cur" in
*@*)
COMPREPLY=($(compgen -W "$dbs" -- "$cur" | sed -e "s/.*@/@/"))
return 0
;;
*)
COMPREPLY=($(compgen -W "$dbs" -- "$cur"))
return 0
;;
esac
;;
2)
COMPREPLY=($(compgen -f -- "$cur"))
return 0
;;
*)
esac
}
complete -F _SQLbatch SQLbatch
到目前爲止,這對於用適當的數據庫和文件完成第一個和第二個條目非常有用。不過,我一直試圖添加一種方法來簡單地打印出「Usage」信息,如果您在文件的任何位置雙擊製表符。所以,如果我把到控制檯這樣的:
SQLbatch [email protected] file.txt [TAB][TAB]
我想完成提醒還有什麼他們需要在不破壞他們已經在鍵入用戶我最新的方法是這樣的:
...
*)
echo -e "\nSQLbatch [database] [file] [maximum # of lines in batch] [time to sleep between batches] [who to email when finished]"
return 0
;;
esac
...
這差不多這樣做,但最終未能重新顯示最新行上的用戶輸入。有沒有辦法強制完成這最後一步?