Encontré este ejemplo al intentar montar un dispositivo usb dentro de un contenedor openvz y nunca antes había visto la construcción en la segunda línea. ¿Puedes explicar lo que significa?
#!/bin/bash
. /etc/vz/vz.conf
fuente
Encontré este ejemplo al intentar montar un dispositivo usb dentro de un contenedor openvz y nunca antes había visto la construcción en la segunda línea. ¿Puedes explicar lo que significa?
#!/bin/bash
. /etc/vz/vz.conf
Es un sinónimo de la construcción source
. Será ejecutar comandos desde un archivo en el shell actual , como leer help source
o help .
.
En su caso, el archivo /etc/vz/vz.conf
se ejecutará (muy probablemente, solo contiene asignaciones variables que se utilizarán más adelante en el script). Difiere de simplemente ejecutar el archivo, por ejemplo, /etc/vz/vz.conf
de muchas maneras: lo más obvio es que el archivo no necesita ser ejecutable; entonces pensará en ejecutarlo, bash /etc/vz/vz.conf
pero esto solo lo ejecutará en un proceso secundario, y el script principal no verá ninguna modificación (p. ej., de variables) que realice el elemento secundario.
Ejemplo:
$ # Create a file testfile that contains a variable assignment:
$ echo "a=hello" > testfile
$ # Check that the variable expands to nothing:
$ echo "$a"
$ # Good. Now execute the file testfile with bash
$ bash testfile
$ # Check that the variable a still expands to nothing:
$ echo "$a"
$ # Now _source_ the file testfile:
$ . testfile
$ # Now check the value of the variable a:
$ echo "$a"
hello
$
Espero que esto ayude.
.
funcionará en la mayoría de los shells (sh, ash, ksh, etc.),source
es específico para bash.source
no es solo bash, está en shells de estilo C (csh
,tcsh
) y zsh también..
funciona en conchas de estilo Bourne, incluidas las enumeradas . Teniendo en cuenta que bash es un shell de estilo Bourne y que es probable que casi ningún script de bash de complejidad no trivial se ejecute en un shell de estilo C, es cierto que.
debería considerarse mucho más portátil. Pero elsource
sinónimo de bash.
existe en parte para la portabilidad..
es universalmente portátil ysource
está muy extendido, pero no funciona de manera simplesh
.Sintaxis nombre de archivo [argumentos]
fuente