Skip to content

Comando ‘set’ do Linux para variáveis ​​de ambiente Bash

4 de maio de 2021

O definir comando no Linux ativa ou limpa sinalizadores ou configurações específicas dentro do ambiente de shell Bash. Outros shells usam métodos diferentes de configuração de variáveis ​​locais.

Usando o comando Set

O comando set permite controlar certos sinalizadores e recursos no Bash para determinar o comportamento de seus scripts. Esses controles ajudam a garantir que seus scripts sigam o caminho pretendido e que certas peculiaridades no Bash não se transformem em problemas. Comece com algo simples. Digamos que você queira desativar o comportamento padrão do Bash de sobrescrever arquivos, o sinalizador ‘-C’ irá impedi-lo. Por exemplo, executando: set -C

type = “code”> configura o Bash para não sobrescrever um arquivo existente ao usar o redirecionamento de saída >, > &, e <> é redirecionado para um arquivo. Por padrão, o Bash permite que a saída redirecionada sobrescreva os arquivos existentes.

Como você pode ver, uma mensagem é exibida informando que o arquivo não pode ser sobrescrito. Este é especialmente útil ao depurar seus scripts, e você não quer perder dados existentes acidentalmente. Em seguida, você pode desativar a geração automática de nome de arquivo, mais comumente conhecida como “globbing”. Globbing pode ser muito útil para encontrar arquivos, mas também pode causar alguns problemas sérios se um personagem desonesto acabar no lugar errado em seu script. O sinalizador ‘-f’ o desativa. set -f

Em seguida, você pode tentar executar algo como: ls *

Normalmente, você veria uma pilha de arquivos e pastas despejados em sua tela, mas agora, você receberá apenas uma mensagem informando que não existe tal diretório.

Linux set command disable globbing

Quando você está depurando um script, provavelmente não deseja que um script parcialmente funcional continue em execução, causando estragos ou produzindo resultados incorretos. Você pode ativar o sinalizador ‘-e’ para interromper um script imediatamente quando algo der errado. set -e

Em uma nota semelhante, o comando set também permite que você veja qual comando em seu script está sendo executado seguido pelo resultado. Isso permite que você depure com mais precisão, fornecendo uma leitura em tempo real de onde seu script está e qual é o resultado de cada comando. Esta funcionalidade super útil vem do sinalizador ‘-x’. set -x

Você pode experimentar com um loop while simples para ver cada iteração. x = 10
enquanto [ $x -gt 0 ]; Faz
x = $[ $x-1 ]
echo $ x
dormir 2
feito

Observe como isso se desenrola. Você obterá uma impressão direta de cada linha. Então, o Bash executará a linha e fornecerá uma impressão do resultado, se houver, e seguirá para a próxima linha. Este método pode economizar muito tempo ao depurar seus scripts.

Linux define o comando com x flag

Caso você esteja acompanhando, provavelmente notou que as mudanças feitas com o comando set parecem permanentes. Eles não são. Use o sinal de mais (+) antes de qualquer um dos sinalizadores para desativá-los. definir + x

Para obter mais informações sobre como o comando set funciona e como ele pode fazer, você sempre pode executar: set –help

Para obter conselhos mais abrangentes sobre a configuração de variáveis ​​integradas para o Bash, revise as instruções do manual do Bash sobre definir.