Articles of bash

Validación de nombre de dominio completamente calificado

¿Hay alguna manera rápida y sucia de validar si se ingresó el FQDN correcto? Tenga en cuenta que no hay servidor DNS ni conexión a Internet, por lo que la validación debe hacerse a través de regex / awk / sed. ¿Algunas ideas?

¿Cuándo se requieren corchetes en una statement Bash if?

Por lo general, uso corchetes en la statement if: if [ “$name” = ‘Bob’ ]; then … Pero, cuando compruebo si grep tuvo éxito, no uso los corchetes: if grep -q “$text” $file ; then … ¿Cuándo son necesarios los corchetes en la statement if ?

¿Cómo ignorar los comandos xargs si la entrada stdin está vacía?

Considera este comando: ls /mydir/*.txt | xargs chown root La intención es cambiar los propietarios de todos los archivos de texto en mydir para mydir El problema es que si no hay archivos .txt en mydir , xargs genera un error que indica que no hay una ruta especificada. Este es un ejemplo inofensivo porque […]

Bash y nombres de archivo con espacios

La siguiente es una línea de comando Bash simple: grep -li ‘regex’ “filename with spaces” “filename” No hay problemas. También lo siguiente funciona bien: grep -li ‘regex’ $(<listOfFiles.txt) donde listOfFiles.txt contiene una lista de nombres de archivos para grepped, un nombre de archivo por línea. El problema ocurre cuando listOfFiles.txt contiene nombres de archivos con […]

Bash: ¿forma fácil de pasar una cadena “cruda” a grep?

grep no se puede alimentar con cadenas “crudas” cuando se utiliza desde la línea de comandos, ya que algunos caracteres deben escaparse para no tratarse como literales. Por ejemplo: $ grep ‘(hello|bye)’ # WON’T MATCH ‘hello’ $ grep ‘\(hello\|bye\)’ # GOOD, BUT QUICKLY BECOMES UNREADABLE Estaba usando printf para escapes automáticos: $ printf ‘%q’ ‘(some|group)\n’ […]

¿Cómo ejecutar un script en un momento determinado en Linux?

Tengo un archivo de texto que contiene una fecha y hora específicas. Quiero poder ejecutar un script a la hora especificada en ese archivo. ¿Cómo lograrías eso? Cree otra secuencia de comandos que se ejecute en segundo plano (una especie de deamon) y verifique cada segundo si la hora actual coincide con la hora del […]

Eliminar elemento de la matriz

Necesito eliminar un elemento de una matriz en bash shell. En general, simplemente lo haría: array=(“${(@)array:#}”) Lamentablemente, el elemento que deseo eliminar es una variable, por lo que no puedo usar el comando anterior. Aquí abajo un ejemplo: array+=(pluto) array+=(pippo) delete=(pluto) array( ${array[@]/$delete} ) -> but clearly doesn’t work because of {} ¿Alguna idea?

Usando bash, ¿cómo se hace una classpath de todos los archivos en un directorio?

Este será un regalo de promoción muy simple para un gurú de bash: Pregunta Usando bash, ¿cómo se hace una classpath de todos los archivos en un directorio? Detalles Dado un directorio: LIB=/path/to/project/dir/lib que no contiene nada más que archivos * .jar como: junit-4.8.1.jar jurt-3.2.1.jar log4j-1.2.16.jar mockito-all-1.8.5.jar Necesito crear una variable classpath separada por dos […]

Diferencia entre $ {} y $ () en Bash

Tengo dos preguntas y podría necesitar ayuda para entenderlas. ¿Cuál es la diferencia entre ${} y $() ? Entiendo que () significa ejecutar el comando en un shell separado y colocar $ significa pasar el valor a la variable. ¿Alguien puede ayudarme a entender esto? Por favor, corríjame si estoy equivocado. Si podemos usar for […]

¿Cómo matas a todos los procesos de Linux que tienen más de cierta edad?

Tengo un problema con algunos procesos tipo zombie en un determinado servidor que deben ser eliminados de vez en cuando. ¿Cómo puedo identificar mejor a los que se han ejecutado durante más de una hora más o menos?