Как я могу повторять все параметры с более чем 2 символами в Bash?

В Fedora 22 нет необходимости запускать новый экземпляр GDM для входа в систему во второй раз, поскольку пользовательские сессии работают на отдельном VT. В конфигурации по умолчанию VT-1 содержит GDM, а первый пользовательский сеанс находится на VT-2.

0
10.12.2018, 15:50
4 ответа

Внешняя команда(wc)не требуется; попробуйте использовать «Расширение параметра / Длина параметра» в цикле.

0
28.01.2020, 02:13
#!/bin/bash
f1(){
     tr -s " " "\n" <<< "$@"| grep...|tr -s "\n" " "
}
3
28.01.2020, 02:13

Вам не нужно расширять $@, но вы должны перебрать его:

for arg in "$@"
do
  [ "${#arg}" -gt 2 ] && printf '%s\n' "$arg"
done

Код ${#arg}запрашивает длину (в байтах )из $arg.

6
28.01.2020, 02:13

Сzsh:

проще
#! /bin/zsh -
f1() print -r -- ${(M)@:#???*}

${array:#pattern}заключается в удалении из расширения массива элементов, соответствующих шаблону (расширение над операторами ${var#pattern}/${var##pattern}ksh ). С флагом расширения параметра M(для , совпадающим с ), происходит обратное и сохраняются только те, которые совпадают.

1
28.01.2020, 02:13

Теги

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