2009-10-08 6 views

Respuesta

153

Utilice la shift comando integrado a "comer" los argumentos. A continuación, llame al proceso secundario y páselo por "[email protected]" para incluir todos los argumentos restantes. Observe las comillas, se deben mantener, ya que hacen que la expansión de la lista de argumentos se cite correctamente.

+18

en realidad "$ @" es más seguro que $ * – pixelbeat

+4

¿Cuál es la diferencia? –

+1

@pixelbeat: Gracias, buena captura. Yo edité @ Łukasz Lew: vea la página vinculada en el manual. :) Básicamente, se encarga de citar mejor. – unwind

18

bash usa la cambio comando:

por ejemplo shifttest.sh:

#!/bin/bash 
echo $1 
shift 
echo $1 $2 

shifttest.sh 1 2 3 produce

1 
2 3 
7

fiesta admite parámetros de subdivisión (ver Subsets and substrings), para que pueda elegir qué parámetros de proceso/pasar de esta manera:

nuevo archivo abierto y editarlo: r.sh vim

echo "params only 2 : ${@:2:1}" 
echo "params 2 and 3 : ${@:2:2}" 
echo "params all from 2: ${@:2:99}" 

ejecutarlo :

chmod u+x r.sh 
./r.sh 1 2 3 4 5 6 7 8 9 10 

el resultado es:

params only 2 : 2 
params 2 and 3 : 2 3 
params all from 2: 2 3 4 5 6 7 8 9 10 
Cuestiones relacionadas