Linux set do Linux
Em sistemas operacionais do tipo Unix, o comando set é uma função interna do shell Bourne ( sh ), shell C ( csh ) e shell Korn ( ksh ), que é usado para definir e determinar os valores do ambiente do sistema .
Sintaxe
Casca Bourne (sh):
definir [--aefhkntuvx [ argumento ]] ...
C shell (csh):
definir [ var [= valor ]]
definir var [ n ] = palavra
Casca de Korn (ksh):
defina [+ -aefhkmnopstuvx] [+ -o opção ] ... [+ -A nome ] [ arg ...]
Opções: Bourne Shell (sh)
Em sh , o comando embutido set possui as seguintes opções:
– | Uma opção de traço duplo (” – “) significa o fim de uma lista de opções. Esta opção é útil principalmente quando os valores listados após as opções começarem com um traço. |
-uma | Marque variáveis modificadas ou criadas para “exportação”; variáveis de ambiente definidas dessa maneira serão transmitidas para os ambientes de quaisquer comandos subseqüentes. |
-e | Saia imediatamente se um comando sair com um status de saída diferente de zero. |
-f | Desativar geração de nome de arquivo ( globbing ). |
-h | Localize e lembre-se dos comandos da função conforme as funções são definidas (os comandos da função normalmente estão localizados quando a função é executada). |
-k | Todos os argumentos de palavras-chave são colocados no ambiente para um comando, não apenas aqueles que precedem o nome do comando. |
-n | Leia comandos, mas não os execute. |
-t | Saia após ler e executar um comando. |
-você | Trate variáveis não definidas como um erro ao substituir. |
-v | Imprima as linhas de entrada do shell à medida que forem lidas. |
-x | Imprima comandos e seus argumentos à medida que são executados. |
Usar + em vez de – faz com que esses sinalizadores sejam desativados. Esses sinalizadores também podem ser usados na chamada do próprio shell. O conjunto atual de sinalizadores pode ser encontrado na variável $ – . Os argumentos restantes são parâmetros posicionais e são atribuídos, em ordem, a $ 1 , $ 2 , etc. Se nenhum argumento for fornecido, os valores de todos os nomes serão impressos.
Para cada nome, o comando unset remove o valor da variável ou função correspondente. As variáveis especiais PATH , PS1 , PS2 , MAILCHECK e IF não podem ser desabilitadas.
Com o comando interno de exportação , os nomes fornecidos são marcados para exportação automática para o ambiente de comandos executados posteriormente. Se nenhum argumento for fornecido, os nomes de variáveis que foram marcados para exportação durante a execução do shell atual serão listados. Os nomes das funções não são exportados.
Opções: Shell C (csh)
No csh , se nenhum argumento for especificado, set exibirá os valores de todas as variáveis do shell. Os valores de várias palavras são exibidos como uma lista entre parênteses. Somente com o argumento var , set atribui um valor vazio ( nulo ) à variável var . Com argumentos no formato var = value , set atribui valor a var , em que value é um dos seguintes:
palavra | Uma única palavra (ou string entre aspas ). |
(lista de palavras ) | Uma lista de palavras separadas por espaço entre parênteses. |
Os valores são comando e nome do arquivo expandidos antes de serem atribuídos. A forma de conjunto var [ n ] = palavra substitui o n ‘th palavra num multiword valor com palavra .
unset remove variáveis cujos nomes jogo (usando nome do arquivo de substituição) padrão. Todas as variáveis são removidos por ” * unset “; essa é uma péssima idéia, se você não sabe o que está fazendo.
Opções: K Shell (ksh)
No ksh , o comando set usa as seguintes opções:
-UMA | Atribuição de matriz . Desative o nome da variável e atribua valores sequencialmente a partir da lista arg. Se + A for usado, o nome da variável não será desabilitado primeiro. | ||||||||||||||||||||||||||||||||||||||||
-uma | Todas as variáveis subsequentes definidas são exportadas automaticamente. | ||||||||||||||||||||||||||||||||||||||||
-e | Se um comando tiver um status de saída diferente de zero, execute a interceptação de ERR (se configurada) e saia. Este modo é desativado durante a leitura de perfis. | ||||||||||||||||||||||||||||||||||||||||
-f | Desativa a geração de nome de arquivo (globbing). | ||||||||||||||||||||||||||||||||||||||||
-h | Cada comando se torna um alias rastreado quando encontrado pela primeira vez. | ||||||||||||||||||||||||||||||||||||||||
-k | Todos os argumentos de atribuição de variáveis são colocados no ambiente para um comando, não apenas aqueles que precedem o nome do comando. | ||||||||||||||||||||||||||||||||||||||||
-m | Os trabalhos em segundo plano serão executados em um grupo de processos separado e uma linha será impressa após a conclusão. O status de saída dos trabalhos em segundo plano é relatado em uma mensagem de conclusão. Em sistemas com controle de trabalho, esse sinalizador é ativado automaticamente para shells interativos. | ||||||||||||||||||||||||||||||||||||||||
-n | Leia os comandos e verifique se há erros de sintaxe, mas não os execute. Ignorado para shells interativos. | ||||||||||||||||||||||||||||||||||||||||
-o opção | O argumento da opção pode ser um dos seguintes:
Se nenhum nome de opção for fornecido, as configurações de opção atuais serão impressas. | ||||||||||||||||||||||||||||||||||||||||
-p | Desativa o processamento do arquivo $ HOME / .profile e usa o arquivo / etc / suid_profile em vez do arquivo ENV . Este modo está ativado sempre que o uid efetivo (ID do usuário) não for igual ao uid real ou quando o gid efetivo (ID do grupo) não for igual ao gid real. Desativar isso faz com que o uid e o gid efetivos sejam definidos como o uid e o gid reais. | ||||||||||||||||||||||||||||||||||||||||
-s | Classifique os parâmetros posicionais lexicograficamente. | ||||||||||||||||||||||||||||||||||||||||
-t | Saia após ler e executar um comando. | ||||||||||||||||||||||||||||||||||||||||
-você | Trate parâmetros não definidos como um erro ao substituir. | ||||||||||||||||||||||||||||||||||||||||
-v | Imprima as linhas de entrada do shell à medida que forem lidas. | ||||||||||||||||||||||||||||||||||||||||
-x | Imprima comandos e seus argumentos à medida que são executados. | ||||||||||||||||||||||||||||||||||||||||
– | Desativa os sinalizadores -x e -v e para de examinar argumentos para sinalizadores. | ||||||||||||||||||||||||||||||||||||||||
– | Não altere nenhuma das bandeiras; útil na definição de $ 1 para um valor que começa com – . Se nenhum argumento seguir esse sinalizador, os parâmetros posicionais serão desativados. |
Usar + em vez de – faz com que esses sinalizadores sejam desativados. Esses sinalizadores também podem ser usados na chamada do shell. O conjunto atual de sinalizadores pode ser encontrado em $ – . A menos que -A seja especificado, os argumentos restantes são parâmetros posicionais e são atribuídos, em ordem, a ” $ 1 $ 2 …”. Se nenhum argumento for fornecido, os nomes e valores de todas as variáveis serão impressos na saída padrão.
As variáveis fornecidas pela lista de nomes são automaticamente não atribuídas: seus valores e atributos são apagados. As variáveis somente leitura não podem ser desabilitadas . Se o sinalizador -f estiver definido, os nomes se referirão aos nomes das funções. A desactivação ERRNO , NUM_LINHA , MAILCHECK , OPTARG , OPTIND , RANDOM , SEGUNDOS , TMOUT , e _ remove seu significado especial, mesmo que sejam posteriormente atribuído.
Ao usar a configuração não definida , as variáveis fornecidas pela lista de nomes são igualmente não atribuídas: seus valores e atributos são apagados. As variáveis somente leitura não podem ser desabilitadas . Se o sinalizador -f , estiver definido, os nomes se referirão aos nomes das funções. A desactivação ERRNO , NUM_LINHA , MAILCHECK , OPTARG , OPTIND , RANDOM , SEGUNDOS , TMOUT , e _ remove seu significado especial, mesmo que sejam posteriormente atribuído.
Com o comando interno de exportação , os nomes fornecidos são marcados para exportação automática para o ambiente de comandos executados posteriormente. Os comandos ksh precedidos por um ou dois caracteres ” * ” (asteriscos) são tratados especialmente das seguintes maneiras:
- As listas de atribuição de variáveis que precedem o comando permanecem em vigor quando o comando é concluído.
- Os redirecionamentos de E / S são processados após atribuições de variáveis.
- Erros fazem com que um script que os contenha seja interrompido.
- As palavras, após um comando precedido por ** que estão no formato de uma atribuição de variável, são expandidas com as mesmas regras que uma atribuição de variável. Essa atribuição significa que a substituição do til é realizada após a divisão do sinal = e da palavra e geração do nome do arquivo.
Exemplos
defina PATH = "/ bin: / usr / bin: / usr / sbin: usr / local / bin"
No csh , esse comando define a variável de ambiente PATH , de modo que o shell procure por arquivos nos diretórios / bin , / usr / bin , / usr / sbin e / usr / local / bin , nessa ordem.
Comandos relacionados
csh – O interpretador de comandos do shell C.
ksh – O interpretador de comandos do shell Korn.
setenv – Defina o valor de uma variável de ambiente.
sh – O interpretador de comandos do Bourne shell.