¿Cómo convierto los argumentos de la línea de comandos en una matriz de scripts bash?Convierta los argumentos de la línea de comando en una matriz en Bash
Quiero aprovechar esta:
./something.sh arg1 arg2 arg3
y convertirlo en
myArray=(arg1 arg2 arg3)
de modo que pueda utilizar miMatriz para su uso posterior en el guión.
Este SO post anterior se acerca, pero no entra en cómo crear una matriz: How do I parse command line arguments in Bash?
Necesito convertir los argumentos en una matriz regular escritura del golpe; Me doy cuenta de que podría usar otros lenguajes (Python, por ejemplo) pero necesito hacer esto en bash. Supongo que estoy buscando una función de "agregar" o algo similar.
ACTUALIZACIÓN: También quería preguntar cómo comprobar cero argumentos y asignar un valor de matriz por defecto, y gracias a la respuesta a continuación, fue capaz de conseguir este trabajo:
if [ "$#" -eq 0 ]; then
myArray=(defaultarg1 defaultarg2)
else
myArray=("[email protected]")
fi
¡Gracias! ¡Funciona genial! Estaba a punto de preguntar cómo verificar cero argumentos y asignar un valor de matriz predeterminado, ¡y el $ # funciona perfectamente para eso! – Suman
@kojiro ¿cuál es el significado de establecer -, gracias – mailzyok
'conjunto' le permite establecer los parámetros de posición para el alcance. También le permite configurar opciones de shell. Puedes hacer 'set foo', lo que significa' $ 1' se expande a "foo", pero si tus parámetros comienzan con un guión 'set' asumirá que quieres establecer una opción de shell. El doble guión garantiza que todos los parámetros siguientes se interpreten como parámetros posicionales a establecer. – kojiro