大家都知道 systemd 启个服务打 systemctl start nginx.service 实在是长的难受(尽管有Tab…), 于是 ArchWiki 上有介绍一个简单用 start nginx 来代替的方法, 但是这个方法没有 Bash 自动补全, 于是我自己折腾了一下..
补全函数都取自他们各自原来的 bash-completion 文件, 我只修改了一点点(可惜不能复用啊..).
嗯, 照例上代码…
/etc/bash.bashrc, 或者 ~/.bashrc 里添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
if ! systemd-notify --booted; then # not using systemd start() { sudo rc.d start $1 } restart() { sudo rc.d restart $1 } stop() { sudo rc.d stop $1 } else _target() { if [[ "$1" == *.service ]] then echo $1 else echo $1.service fi } export -f _target start() { sudo systemctl start $(_target $1) } export -f start restart() { sudo systemctl restart $(_target $1) } export -f restart stop() { sudo systemctl stop $(_target $1) } export -f stop enable() { sudo systemctl enable $(_target $1) } export -f enable status() { sudo systemctl status $(_target $1) } export -f status disable() { sudo systemctl disable $(_target $1) } export -f disable fi |