Usando um subshell (recomendado)
Execute o comando de origem em um subshell:
(
source linuxmachines_mount_point.txt
cmd1 $linuxmachine02
other_commands_using_variables
etc
)
echo $linuxmachine01 # Will return nothing
Subshells são definidos por parens: (...)
. Quaisquer variáveis shell configuradas dentro da subshell são esquecidas quando a subshell termina.
Usando unset
Isso anula qualquer variável exportada por linuxmachines_mount_point.txt
:
unset $(awk -F'[ =]+' '/^export/{print $2}' linuxmachines_mount_point.txt)
-
-F'[ =]+'
diz ao awk para usar qualquer combinação de espaços e sinais de igual como o separador de campos. -
/^export/{print $2}
Isto diz ao awk para selecionar linhas que começam com
export
e depois imprimem o segundo campo. -
unset $(...)
Isso executa o comando dentro de
$(...)
, captura seu stdout e desconfigura quaisquer variáveis nomeadas por sua saída.