набор строк grep в виде одной строки

У меня есть этот псевдоним alias sudo = 'sudo' , определенный в файле, который я source d в конце файла ~ / .zshrc , который перезаписал псевдоним sudo = 'nocorrect sudo' , который определен в .oh-my-zsh / lib / Correction.zsh

псевдоним sudo = 'nocorrect sudo' требуется для zsh автоматически - функция завершения для работы
Подробнее: Как отключить автокоррекцию для sudo [command] в zsh?

Но в то же время мне нужен псевдоним sudo = 'sudo' для псевдонимов команд, следующих за sudo для работы
Подробнее: Загрузить псевдонимы из файла .bashrc при использовании sudo
Обратите внимание на псевдоним sudo = 'sudo ' также работает для zsh

Так что я могу либо использовать функцию автозаполнения zsh, либо иметь псевдонимы (других команд) при использовании sudo , поэтому теперь я отключил функцию автозаполнения zsh.

( Надеюсь, я ясно и не запутываю. )

0
14.01.2019, 22:23
2 ответа

DopeGhoti абсолютно прав, вот что, пожалуй, больше подходит. Чтение построчно из шаблона вывода grep (, примененного ко всем *файлам.msg в текущем каталоге )с помощью подстановки процесса:

i=0; 
while read -r line; do 
    echo $((i++)) "$line"; 
done < <(grep "FINAL"./*.msg)

Фрагмент не содержит предупреждений shellcheck:)

1
28.01.2020, 02:30

Это связано с тем, как оболочка разделяет ваш ввод. Имейте в виду, что, если не указано иное, любой пробел обычно разделяет ввод :

.
$ echo "Foo bar baz"
Foo bar baz
$ for word in $(echo "Foo bar baz"); do echo $word; done
Foo
bar
baz
1
28.01.2020, 02:30

Теги

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