Preguntas etiquetadas con bash

19
problema de readarray (o tubería)

Me quedé con un extraño comportamiento de readarraymando. Los man bashestados: readarray Read lines from the standard input into the indexed array variable array pero estos scripts no funcionan (la matriz está vacía): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset...

19
Cómo ls sin recursivo

Estoy tratando de ls algunos archivos con un patrón en un directorio. Solo quiero escanear el primer nivel no recursivo. Mi guión: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done El comando anterior escanea recursivamente. ¿Cómo puede hacer que solo se escanee el directorio de...

19
Parámetros de estilo dd a un script bash

Me gustaría pasar los parámetros a un script bash, dd-style. Básicamente quiero ./script a=1 b=43 tener el mismo efecto que a=1 b=43 ./script Pensé que podría lograr esto con: for arg in "$@"; do eval "$arg"; done ¿Cuál es una buena manera de garantizar que evalsea ​​seguro, es decir, que...

19
¿Cuándo puedo usar un IFS temporal para la división de campos?

En bash, di que tienes var=a.b.c., entonces: $ IFS=. printf "%s\n" $var a.b.c Sin embargo, dicho uso IFStiene efecto al crear una matriz: $ IFS=. arr=($var) $ printf "%s\n" "${arr[@]}" a b c Esto es muy conveniente, claro, pero ¿dónde está documentado? Una lectura rápida de las secciones sobre...

19
¿Es un enfoque sensato "respaldar" la variable $ IFS?

Siempre dudo mucho en jugar $IFSporque es un golpe global. Pero a menudo hace que cargar cadenas en una matriz bash sea agradable y conciso, y para las secuencias de comandos bash, la concisión es difícil de encontrar. Así que me imagino que podría ser mejor que nada si trato de "guardar" el...

19
¿Qué significa $ {1: 0: 2} en este contexto?

Estoy mirando el código que se muestra a continuación y comprueba la entrada si los argumentos de fila / columna comienzan con -ro -c. ¿Qué ${1:0:2}significa en este contexto? rowArgName="-r" colArgName="-c" if [ "${1:0:2}" != $rowArgName ] && [ "${1:0:2}" != $colArgName ] then echo...