Quiero crear un directorio de tal manera que necesite etiquetar los directorios de aa z. Dentro de cada uno de estos directorios, necesito crear subdirectorios para que estén etiquetados como aa, abetc.
Entonces, por ejemplo, para el directorio m, mis subdirectorios se etiquetarán como ma, mbhasta mz.
shell-script
mkdir
Ramesh
fuente
fuente

/usr/share/terminfocon [az] y usaría esa salida. Linux es bastante escaso en ese aspecto, solía ser entradas para todos los caracteres en mayúsculas y minúsculas más los dígitos.Respuestas:
Tratar:
Bash se expandirá
XXX{a..z}aXXXa,XXXby así sucesivamente. No hay necesidad del bucle interno que tienes.Después de esto:
fuente
Entonces, con
bashla expansión del alfabeto, esto funciona:Y si solo escribe el alfabeto una vez en la primera línea, el mismo concepto debería ser portátil para cualquier shell. Hay otras formas de llegar a la línea establecida si no desea escribirla como:
... por ejemplo, funciona en un entorno local ASCII. Por lo tanto, podría hacer
set $(seq -sP32P 97 123|dc)o cualquier otro comando que le proporcionaría una$IFSlista separada de los argumentos que necesita, pero, quiero decir, probablemente sea mejor usar labashcosa o escribirla.De todos modos, creo que esa es la forma en que lo haría solo porque solo invoca
mkdircon la frecuencia necesaria.Y solo para demostrar cómo funciona, aquí hay una pequeña salida de depuración de un conjunto más pequeño:
Como puede ver, los
forúnicos bucles una vez por índice de matriz de parámetros posicionales, que establezco aquí simplemente entregandoshlos parámetros en la invocación, y arriba conset ${positionals}. Peroprintfrecibe la misma matriz en su lista de argumentos para cada iteración y aplica su cadena de formato a cada uno de sus argumentos, por lo que obtiene la apariencia de recursión sin ninguna recursión innecesaria.Y agregar el
done|commandflujo de transmisión de todaforla salida de un bucle sobre la tubería de la misma maneradone >filelo transmitiría todo en un archivo, solo abriendo y cerrando el archivo de salida una vez para toda lafor...doneconstrucción.fuente
A partir de aquí , terminé creando un script como este. Sin embargo, si obtengo una solución elegante, la aceptaré como respuesta.
fuente
/home/ramesh/"$x"/"$x$y",/home/ramesh/"$x/$x$y"o"/home/ramesh/$x/$x$y"- todos son equivalentes.En
Perl:File::Pathes módulo central desde entoncesPerl 5.001.fuente