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
$1sin citarlos"$1", el shell realizará la división de palabras, por ejemplofoo bar, se reenviará comofooy porbarseparado.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