Dentro de mi script bash, me gustaría analizar cero, uno o dos parámetros (el script puede reconocerlos), luego reenviar los parámetros restantes a un comando invocado en el script. ¿Cómo puedo hacer eso?
bash
command-line
Łukasz Lew
fuente
fuente
$@
esencialmente trata cada elemento de la matriz como una cadena entre comillas: se pasan sin oportunidad de expansión. También asegura que cada uno sea visto como una palabra separada. Esta explicación junto con un script de prueba que demuestra la diferencia está aquí: tldp.org/LDP/abs/html/internalvariables.html#APPREFbash usa el comando shift :
por ejemplo shifttest.sh:
shifttest.sh 1 2 3 produce
fuente
$1
sin citarlos"$1"
, el shell realizará la división de palabras, por ejemplofoo bar
, se reenviará comofoo
y porbar
separado.Bash admite parámetros de subconjunto (consulte Subconjuntos y subcadenas ), por lo que puede elegir qué parámetros procesar / pasar de esta manera.
abra un nuevo archivo y edítelo
r.sh
: vim :ejecutarlo:
el resultado es:
fuente