sh/bash/dash/ksh/zsh等Shell脚本
-
tusooa
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
-
联系:
#1
帖子
由 tusooa » 2010-07-18 9:06
其实很多命令都可以自动补全。
如果是自己写的命令呢?
比如说ac-归档.bash,ae-解压.bash
让它补全参数,像这样:
代码: 全选
tlcr: 0 庚寅年六月初七日 08:42:56 ~
>> pacman -
-- option --
-Q -- Query the package database
-R -- Remove a package from the system
-S -- Synchronize packages
-U -- Upgrade a package
-V -- Display version and exit
-h -- Display usage
(compctl貌似只能补全字词,没有这个说明)
man没讲明白
Zsh底下通配符没用(不是文件名)
代码: 全选
tlcr: 0 庚寅年六月初七日 08:42:29 ~
>> pacman -Si bash*
zsh: no matches found: bash*
tlcr: 1 庚寅年六月初七日 08:42:43 ~
>> pacman -Si bash
-- packages --
bash bashdb
bashburn bashrun
bash-completion bash-xyne-common_functions
要的效果是pacman -Si bash* == pacman -Si bash bashburn bash-completion bashdb bashrun bash-xyne-common_functions (把底下显示的东东全部补全)
-
tusooa
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
-
联系:
#2
帖子
由 tusooa » 2010-07-18 15:39
补全解决了:
代码: 全选
_ds-打印脚本.bash()
{
find "$HOME/应用/脚本" -name '??-*.*' | \
while read line ; do
reply=("${reply[@]}" "${line#$HOME/应用/脚本/}")
done
}
compctl -K _ds-打印脚本.bash ds-打印脚本.bash
代码: 全选
tlcr: 0 庚寅年六月初七日 15:47:49 ~
>> ds-打印脚本.bash [tab]
ab-地址本.perl ds-打印脚本.bash td-待办事项.bash
ac-归档.bash ea-记账.perl tm-托盘菜单.perl
ae-解压.bash lc-农历.py wg-天气.perl
dm-下载Fc杂志.bash sd-截图.bash 游戏/sn-贪吃蛇.bash