Articles of bash

Línea de comando para eliminar todos los archivos view-private de ClearCase

Estoy buscando una línea de comando para eliminar todos los archivos y directorios view-private desde una vista de ClearCase en Windows. También tengo Cygwin disponible. La secuencia de comandos disponible en este artículo no es exactamente lo que quiero, ya que estoy trabajando con una gran cantidad de archivos y quiero eliminarlos todos sin tener […]

Itera en dos arreglos simultáneamente en bash

Tengo dos arreglos array=( Vietnam Germany Argentina ) array2=( Asia Europe America ) Quiero recorrer estas dos matrices simulaneamente, es decir, invocar un comando en los primeros elementos de las dos matrices, luego invocar el mismo comando en los segundos elementos, y así sucesivamente. Pseudocódigo: for c in $(array[*]} do echo -e ” $c is […]

Bash variable substitution vs dirname y basename

El siguiente script str=/aaa/bbb/ccc.txt echo “str: $str” echo ${str##*/} == $(basename $str) echo ${str%/*} == $(dirname $str) produce: str: /aaa/bbb/ccc.txt ccc.txt == ccc.txt /aaa/bbb == /aaa/bbb La pregunta es: En los scripts bash, ¿cuándo se recomienda usar los comandos dirname y basename y cuándo las sustituciones de las variables y por qué? Preguntando principalmente porque: […]

¿El comportamiento detrás de la vulnerabilidad Shellshock en Bash está documentado o es intencional?

Se reveló una vulnerabilidad reciente, CVE-2014-6271 , sobre cómo interpreta Bash las variables de entorno. El exploit se basa en el análisis de Bash de algunas declaraciones de variables de entorno como definiciones de funciones, pero luego sigue ejecutando el código siguiendo la definición: $ x='() { echo i do nothing; }; echo vulnerable’ bash […]

Bash regex = ~ operador

¿Cómo se llama el operador =~ ? ¿Se usa solo para comparar el lado derecho contra el lado izquierdo? ¿Por qué se requieren corchetes dobles al ejecutar una prueba? es decir. [[ $phrase =~ $keyword ]] Gracias

Script de Shell para obtener el ID del proceso en Linux

Quiero escribir un script de shell (archivo .sh ) para obtener un ID de proceso determinado. Lo que trato de hacer aquí es que una vez que obtenga el ID del proceso, quiero matar ese proceso. Estoy corriendo en Ubuntu (Linux). Pude hacerlo con un comando como ps -aux|grep ruby kill -9 pero no estoy […]

¿Qué cuesta $? $ 0 $ 1 $ 2 significa en el script de shell?

A menudo me encuentro con $? $0 $1 $2 etc…. $? $0 $1 $2 etc…. en scripts de shell, lo que sé es que $? devuelve el estado de salida del último comando echo “this will return 0” echo $? pero, ¿qué hacen los otros? ¿cómo se llaman y hay más? tal vez como $ […]

Establecer variables de entorno en Linux usando Bash

En tcsh , tengo el siguiente script funcionando: #!/bin/tcsh setenv X_ROOT /some/specified/path setenv XDB ${X_ROOT}/db setenv PATH ${X_ROOT}/bin:${PATH} xrun -d xdb1 -i $1 > $2 ¿Cuál es el equivalente a la función tcsh setenv en Bash? ¿Hay un análogo directo? Las variables de entorno son para ubicar el ejecutable.

¿Cómo puedo preservar las nuevas líneas en una cadena entrecomillada en Bash?

Estoy creando un script para automatizar la creación de hosts virtuales de apache. Parte de mi script es así: MYSTRING=” ServerName $NEWVHOST DocumentRoot /var/www/hosts/$NEWVHOST … ” echo $MYSTRING Sin embargo, los saltos de línea en el guión están siendo ignorados. Si repito la cadena, se escupió como una línea. ¿Cómo puedo garantizar que se impriman […]

Explicación del operador de dos puntos en “: $ {foo = value}”

Entiendo que el operador de dos puntos en bash actúa como un nulo , y sé que se usa en la expansión de parámetros , además de que se usa de otras maneras, pero ¿alguien puede explicar esto? : ${SOMETHING=’value’} De la experimentación, sé que esto establece la variable de entorno $SOMETHING en ‘value’ pero […]