Как к завершениям выходной строки к stdout?

как насчет этого:

for i in /sys/bus/usb/devices/usb* ; do echo "suspend" > $i/power/level; done

Для отладки целей можно добавить "$i эха" там где-нибудь для сообщения, какие устройства поражаются.

15
23.05.2017, 15:40
1 ответ

Можно использовать следующую функцию, которые используют тот же путь sudo автозавершение генерирует список завершения:

comp() {
    local COMP_LINE="$*"
    local COMP_WORDS=("$@")
    local COMP_CWORD=${#COMP_WORDS[@]}
    ((COMP_CWORD--))
    local COMP_POINT=${#COMP_LINE}
    local COMP_WORDBREAKS='"'"'><=;|&(:"
    # Don't really thing any real autocompletion script will rely on
    # the following 2 vars, but on principle they could ~~~  LOL.
    local COMP_TYPE=9
    local COMP_KEY=9
    _command_offset 0
    echo ${COMPREPLY[@]}
}
comp git config ''

где _command_offset определяется в завершении удара (пакет).

Примечание: функциональная потребность, которая будет выполнена в интерактивной оболочке (т.е. если это находится в файле, файл должен быть получен вместо просто выполнения.) или необходимые правила/функции завершения не будут определены.

PS. compgen -A только работы для встроенных действий, что необходимо было попробовать (но не работает ни один) compgen -F (или на самом деле compgen -o bashdefault -o default -o nospace -F _git). Причина это не работает (и документ для удара встроенные команды включая compgen/complete) может быть найдена в ударе (1).

10
27.01.2020, 19:50
  • 1
    @l0b0, надо надеяться, работает во всех случаях. –  yuyichao 07.02.2012, 16:37
  • 2
    Превосходный, это работает! Я сделал пару незначительных тонких настроек, и теперь это находится в моем .bash_aliases навсегда. Вы могли бы хотеть сократить поэтому, только решение оставляют, но нет сомнения, что Вы получаете щедрость. Я удалю свои комментарии обсуждения, так как они больше не релевантны. –  l0b0 07.02.2012, 18:26
  • 3
    я нашел, что использование этого в интерактивной оболочке уже может уничтожить заполнение клавишей Tab на месте. Создание каждой из переменных, локальных для функции, решает ту проблему. (например. local COMP_LINE="$*") –  A. L. Flanagan 16.02.2015, 18:09
  • 4
    @A.L.Flanagan. Обновленный. –  yuyichao 17.02.2015, 06:17

Теги

Похожие вопросы