Пользовательское окно Развернуть CentOS 7 XFCE

POSIXly (и с busybox )и в системах на основе ASCII -(Я не думаю, что busybox когда-либо встречался в системах EBCDIC):

letters() { awk 'BEGIN{for(i=97;i<123;i++)printf "%c\n", i}'; }

Будет расширен до этого списка букв, по одной в строке, так что при условии, что вы не изменили $IFS,

cmd $(letters)

можно было бы передать этот список как отдельные аргументы в cmd. Как и в случае с ksh93/ zsh/ bashс cmd {a..z}.

Вряд ли это лучше, чем

letters() { printf '%s\n' a b c d e f g h i j k l m n o p q r s t u v w x y z; }

однако. Чтобы иметь возможность сделать эквивалент foo{a..z}bar, вы можете определить:

letters() { printf "${1-%s\n}" a b c d e f g h i j k l m n o p q r s t u v w x y z; }

вместо этого и назовите его как:

cmd $(letters 'foo%sbar\n')

Вы можете расширить этот подход, выполнив что-то вроде:

format() { awk -v format="$1" '{printf format, $0}' ;}

А затем сделать:

$ seq 97 100 | format 'foo%cbar\n'
fooabar
foobbar
foocbar
foodbar
$ seq 4 | format '%04d\n'
0001
0002
0003
0004

(хотя последнее также может быть написаноseq -w 0004)

seqне является командой POSIX, но busyboxидет с ней.

Обратите внимание, что busybox shоснован на ashпо умолчанию, но также может быть настроен во время сборки для использования оболочки на основе hush-, которая поддерживает раскрытие скобок. Но это только стиль csh -{a,b}, а не стиль zsh -{1..10}, {a..z}или более продвинутые формы, найденные в ksh93/zsh/bash.

0
20.04.2021, 11:38
0 ответов

Теги

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