Я хочу создать каталог таким образом, чтобы мне нужно было пометить каталоги из a
в z
. Внутри каждого из этих каталогов мне нужно создать подкаталоги, чтобы они были помечены как aa
и ab
т. Д.
Так, например, для каталога m
, мои подкаталоги будут помечены как ma
, mb
ДО mz
.
shell-script
mkdir
Рамеш
источник
источник
/usr/share/terminfo
помощью [az] и использовал этот вывод. В этом отношении Linux довольно немногочисленна: раньше это были записи для всех прописных и строчных букв, а также цифр.Ответы:
Пытаться:
Bash будет расширяться
XXX{a..z}
, чтобыXXXa
,XXXb
и так далее. Там нет необходимости для внутреннего цикла у вас есть.После того:
источник
Итак, с
bash
расширением алфавита, это работает:И если вы просто набираете алфавит один раз в первой строке, то такая же концепция должна переноситься на любую оболочку. Есть и другие способы добраться до заданной строки, если вы не хотите печатать ее так:
... например, работает в ASCII локали. Таким образом, вы можете выполнить
set $(seq -sP32P 97 123|dc)
или любую другую команду, которая выдаст вам$IFS
отдельный список аргументов, которые вам нужны, но, я имею в виду, вероятно, лучше просто использоватьbash
вещь или набрать ее.Во всяком случае, я думаю, что я бы так поступил, хотя бы потому, что он вызывается
mkdir
так часто, как это необходимо.И просто чтобы продемонстрировать, как это работает, вот небольшой отладочный вывод меньшего набора:
Как вы можете видеть,
for
единственные циклы один раз на индекс массива позиционных параметров, которые я здесь устанавливаю, просто передаваяsh
параметры при вызове и выше с помощьюset ${positionals}
. Ноprintf
получает один и тот же массив в своем списке аргументов для каждой итерации и применяет свою строку формата к каждому из своих аргументов, так что вы получаете видимость рекурсии без какой-либо ненужной рекурсии.А добавление
done|command
воли к потоку всехfor
выходных данных цикла по каналу таким же образомdone >file
приведет к тому, что все это будет передано в файл - только один раз открывая и закрывая выходной файл для всейfor...done
конструкции.источник
Из здесь , я в конечном итоге создание сценария , как это. Однако, если я получу элегантное решение, я приму его в качестве ответа.
источник
/home/ramesh/"$x"/"$x$y"
,/home/ramesh/"$x/$x$y"
или ..."/home/ramesh/$x/$x$y"
они все эквивалентны.В
Perl
:File::Path
является основным модулем такPerl 5.001
.источник