Latest web development tutorials

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