Me deparei com este exemplo ao tentar montar um dispositivo usb dentro de um contêiner openvz e nunca vi a construção na segunda linha antes. Você pode explicar o que isso significa?
#!/bin/bash
. /etc/vz/vz.conf
fonte
Me deparei com este exemplo ao tentar montar um dispositivo usb dentro de um contêiner openvz e nunca vi a construção na segunda linha antes. Você pode explicar o que isso significa?
#!/bin/bash
. /etc/vz/vz.conf
É um sinônimo do embutido source
. Ele executará comandos de um arquivo no shell atual , conforme lido em help source
ou help .
.
No seu caso, o arquivo /etc/vz/vz.conf
será executado (muito provavelmente, ele contém apenas atribuições de variáveis que serão usadas posteriormente no script). Difere de apenas executar o arquivo com, por exemplo, /etc/vz/vz.conf
de várias maneiras: o mais óbvio é que o arquivo não precisa ser executável; então você pensará em executá-lo, bash /etc/vz/vz.conf
mas isso só será executado em um processo filho, e o script pai não verá nenhuma modificação (por exemplo, de variáveis) que o filho fizer.
Exemplo:
$ # 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 isto ajude.
.
funcionará na maioria dos shells (sh, ash, ksh, etc),source
é específico para o bash.source
não é apenas o bash - está em conchas de estilo C (csh
,tcsh
) - e zsh também..
funciona em conchas no estilo Bourne, incluindo as listadas . Considerando que o bash é um shell no estilo Bourne e dificilmente qualquer script do bash de complexidade não trivial é executado em um shell no estilo C, é verdade que.
deve ser considerado muito mais portátil. Mas osource
sinônimo de bash.
existe em parte para portabilidade..
é universalmente portátil esource
amplamente difundido, mas não funciona de maneira clarash
.Sintaxe. filename [argumentos]
fonte