Shell scripts são uma forma poderosa de manipulação de dados e comandos dentro do sistema operacional Unix . Variáveis nulos são difíceis de testar , a menos que você sabe a maneira correta de fazer isso. Em outras linguagens , as variáveis contendo coisas como " " normalmente classificado como nulo não são , no caso de o shell do Unix como eles são interpretados de forma diferente. Ter valores nulos nas variáveis é muitas vezes um indicador útil de problemas que ocorrem em um script quando os valores não são atribuídos automaticamente conforme o esperado . Quando isso ocorre a ação pode ser tomada e problemas retificado ou o script pode tomar uma rota totalmente diferente para resolver o problema . Instruções
1
Certifique-se que a variável de teste não está definido para qualquer coisa. Uma forma simples de o fazer é testar uma variável que não foi atribuído a um valor de antes do ensaio , por não inicializar a variável como var = " " . Neste exemplo, " " seria classificado como uma string ( na verdade não comprimento zero) e seria interpretado como um valor em shell script .
2
Teste a variável de comprimento zero usando o shell do Unix padrão sintaxe que (na versão shell Bourne ) é:
if [- z " $ var "]
então
# outros comandos ...
fi
Isto significa que, se a variável " $ var " não tem um comprimento , que é um valor nulo . A ação pode ser tomada com base no teste na declaração "e depois" que se segue.
3
Testar uma variável para um valor nulo , e se ele não contém um valor , atribuir um em um único comando. Isto pode ser conseguido através de um comando especial shell da seguinte forma:
varisnullornot = $ {var : - NULL }
Neste caso, a variável " varisnullornot " será atribuído o valor contido no " var " variável se ela tem um valor. Se ele não tem um valor , em seguida, a variável " varisnullornot " será atribuído a palavra " NULL ", que podem então ser testados da seguinte forma:
if [" $ varisnullornot " = " NULL" ]
então
echo " var é uma variável nula "
mais
echo "\\" varisnullornot \\ "" é atribuído o valor contido em \\ " var \\ " "
fi