English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Podemos pasar parámetros al script mientras ejecutamos el Shell script, y el formato de obtención de parámetros en el script es:$n.n Representa un número,1 El primer parámetro del script de ejecución,2 El segundo parámetro del script de ejecución, y así sucesivamente...
En el siguiente ejemplo, pasamos tres parámetros al script y los outputamos respectivamente, entre los cuales $0 El nombre del archivo ejecutado (incluso la ruta del archivo):
#!/bin/bash # autor: Tutoriales básicos # url:es.oldtoolbag.com echo "¡Ejemplo de paso de parámetros de Shell!"; echo "El nombre del archivo ejecutado: $0"; echo "El primer parámetro es: $"1"; echo "El segundo parámetro es: $2"; echo "El tercer parámetro es: $3";
Establecer permisos ejecutables para el script y ejecutar el script, el resultado de la salida es como se muestra a continuación:
$ chmod +x test.sh $ ./test.sh 1 2 3 ¡Ejemplo de paso de parámetros de Shell! El nombre del archivo ejecutado: ./test.sh El primer parámetro es:1 El segundo parámetro es:2 El tercer parámetro es:3
Además, hay algunos caracteres especiales para manejar parámetros:
Manejo de parámetros | Descripción |
---|---|
$# | El número de parámetros pasados al script |
$* | Se muestra todos los parámetros pasados al script con una sola cadena. Como "$*La situación entre comillas dobles "" y con "$1 $2 Se outputan todos los parámetros en la forma "… $n". |
$$ | El ID de proceso actual del script en ejecución |
$! | El último ID de proceso ejecutándose en segundo plano |
$@ | Con $*Igual, pero se usa con comillas y se regresan cada uno de los parámetros dentro de las comillas. Como en el caso de "$@" entre comillas, se utilizan comillas cuando se usa, y se regresan cada uno de los parámetros dentro de las comillas.1" "$2" … "$n" para salida de todos los parámetros. |
$- | Mostrar las opciones utilizadas por Shell en la actualidad, equivalentes aComando setFunción idéntica. |
$? | Mostrar el estado de salida del último comando. 0 indica que no hubo errores, cualquier otro valor indica que hubo errores. |
#!/bin/bash # autor: Tutoriales básicos # url:es.oldtoolbag.com echo "¡Ejemplo de paso de parámetros de Shell!"; echo "El primer parámetro es: $"1"; echo "Número de parámetros: $#"; echo "Los parámetros pasados se muestran como una cadena: $"*";
Ejecutar el script, los resultados de la salida se muestran a continuación:
$ chmod +x test.sh $ ./test.sh 1 2 3 ¡Ejemplo de paso de parámetros de Shell! El primer parámetro es:1 Número de parámetros:3 Los parámetros pasados se muestran como una cadena:1 2 3
$* Diferencias con $@:
Similitudes: ambos son referencias a todos los parámetros.
Diferencias: solo se reflejan en comillas dobles. Supongamos que se escribieron tres parámetros durante la ejecución del script 1、2、3,则 " * " es equivalente a "1 2 3" (se pasó un parámetro), mientras que "@" es equivalente a "1" "2" "3" (se pasaron tres parámetros).
#!/bin/bash # autor: Tutoriales básicos # url:es.oldtoolbag.com echo "-- \$* Demostración ---" for i in "$"*"; do echo $i hecho echo "-- \$@ Demostración ---" for i in "$@"; do echo $i hecho
Ejecutar el script, los resultados de la salida se muestran a continuación:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* Demostración --- 1 2 3 -- $@ Demostración --- 1 2 3