/
githubmirror
/
bash-completion
Обзор
Документация
Войти
/
githubmirror
/
bash-completion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.9
completions/screen
94 строки
2 KB
Ville Skyttä
*: shellcheck error fixes
23 апр 2019, 22:57
23 апр 2019, 22:57
f1c32f4
Код
Авторство
О чём код?
# bash completion for screen -*- shell-script -*- _screen_sessions() { local sessions=( $(command screen -ls | command sed -ne \ 's|^\t\{1,\}\([0-9]\{1,\}\.[^\t]\{1,\}\).*'"$1"'.*$|\1|p') ) if [[ $cur == +([0-9])?(.*) ]]; then # Complete sessions including pid prefixes COMPREPLY=( $(compgen -W '${sessions[@]}' -- "$cur") ) else # Create unique completions, dropping pids where possible local -A res local i tmp for i in "${sessions[@]}"; do res[${i/#+([0-9])./}]+=" $i" done for i in "${!res[@]}"; do [[ ${res[$i]} == \ *\ * ]] && tmp+=" ${res[$i]}" || tmp+=" $i" done COMPREPLY=( $(compgen -W '$tmp' -- "$cur") ) fi } && _screen() { local cur prev words cword _init_completion || return if ((cword > 2)); then case ${words[cword-2]} in -*[dD]) _screen_sessions return ;; esac fi local i for (( i=1; i <= cword; i++ )); do case ${words[i]} in -*[rRdDxscTehpSt]) (( i++ )) continue ;; -*) continue ;; esac _command_offset $i return done case $prev in -*[rR]) # list detached _screen_sessions 'Detached' return ;; -*[dD]) # list attached _screen_sessions 'Attached' return ;; -*x) # list both _screen_sessions return ;; -*s) _shells return ;; -*c) _filedir return ;; -T) _terms return ;; -*[ehpSt]) return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $(compgen -W '-a -A -c -d -D -e -f -fn -fa -h -i -ln -list -L -m -O -p -q -r -R -s -S -t -T -U -v -wipe -x -X --help --version' -- "$cur") ) fi } && complete -F _screen screen # ex: filetype=sh