Dưới đây là hướng dẫn cơ bản.
Hãy có một ví dụ về tập lệnh được gọi là admin.sh mà bạn muốn tự động hoàn thành.
#!/bin/bash
while [ $# -gt 0 ]; do
arg=$1
case $arg in
option_1)
# do_option_1
;;
option_2)
# do_option_1
;;
shortlist)
echo option_1 option_2 shortlist
;;
*)
echo Wrong option
;;
esac
shift
done
Lưu ý danh sách rút gọn tùy chọn. Tập lệnh gọi với tùy chọn này sẽ in ra tất cả các tùy chọn có thể cho tập lệnh này.
Và ở đây bạn có kịch bản tự động hoàn thành:
_script()
{
_script_commands=$(/path/to/your/script.sh shortlist)
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${_script_commands}" -- ${cur}) )
return 0
}
complete -o nospace -F _script ./admin.sh
Lưu ý rằng đối số cuối cùng cần hoàn thành là tên của tập lệnh bạn muốn thêm tự động hoàn thành. Tất cả những gì bạn cần làm là thêm tập lệnh tự động hoàn tất vào bashrc như
source /path/to/your/autocomplete.sh
hoặc sao chép nó vào /etc/bash.completion.d
Nguồn: https://askubfox.com/a/483149/24155