paso de parámetros Shell
Podemos en la ejecución del script de shell para pasar parámetros al script, éste toma parámetros dentro delformato: $ n.n representa un número, 1 para la primera ejecución del parámetro de guión, 2 para el segundo parámetro para ejecutar la secuencia de comandos, y así sucesivamente ......
Ejemplos
Los siguientes ejemplos nos pasan tres parámetros en el guión, y salidas, donde $ 0 es el nombre del archivo a ejecutar:
#!/bin/bash # author:本教程 # url:www.w3big.com echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";
Establecer permisos de ejecución al script y ejecutar la secuencia de comandos, la salida es la siguiente:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3
Además, hay varios parámetros para manejar caracteres especiales:
La administración de parámetros | explicación |
---|---|
$ # | El número de parámetros pasados al script |
$ * | En una sola cadena muestra todos los parámetros pasados al script. Tales como "$ *" con "" "caso cerrado, la forma de" $ 1 $ 2 ... $ n "de salida de todos los parámetros. |
$$ | El número ID del proceso actual de la secuencia de comandos se ejecuta |
$! | Por último, un proceso que se ejecuta en el fondo número ID |
$ @ | * $ Con el mismo, pero cuando se utiliza comillas, y devuelve cada parámetro entre comillas. Tales como "$ @" con "" "caso cerrado, la forma de" $ 1 "" $ 2 "..." N $ "de salida de todos los parámetros. |
$ - | Shell muestra la opción actual para utilizar y configurar el comando de la misma función. |
$? | Muestra el estado de salida del último comando. 0 indica que no hay errores, y cualquier otro valor indica un error. |
#!/bin/bash # author:本教程 # url:www.w3big.com echo "Shell 传递参数实例!"; echo "第一个参数为:$1"; echo "参数个数为:$#"; echo "传递的参数作为一个字符串显示:$*";
Ejecutar la secuencia de comandos, la salida es el siguiente:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 第一个参数为:1 参数个数为:3 传递的参数作为一个字符串显示:1 2 3
$ * $ @ Y la diferencia:
- El mismo punto: todas las referencias a todos los parámetros.
- Diferencias: sólo se refleja en comillas dobles. Supongamos que el script se ejecuta al escribir los tres parámetros 1,2,3 ,, "*" es equivalente a "123" (pasar un parámetro), y "@" es equivalente a "1", "2", " 3 "(aprobado tres parámetros).
#!/bin/bash # author:本教程 # url:www.w3big.com echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done
Ejecutar la secuencia de comandos, la salida es el siguiente:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3