Como registrar se uma variável de ambiente não está definida? [fechadas]

1

Como posso escrever um script de shell que verifica uma variável de ambiente e grava em um arquivo de log se a variável não estiver definida?

Além disso, se o nome do arquivo apontado pela variável env não existir, como criá-lo?

    
por xyz 19.10.2011 / 07:54

2 respostas

4

Uma variável de ambiente é aquela que é exportada para subprocessos.
Este roteiro, ainda para se adaptar à sua necessidade, pode ser útil. Ele usa a sintaxe ${var:?word} , com e sem : para determinar o resultado:

#!/bin/sh

unset=0
null=0

if ! sh -c 'echo ${var?}' >/dev/null 2>/dev/null; then
   unset=1
elif ! sh -c 'echo ${var:?}' >/dev/null 2>/dev/null; then
   null=1
fi

echo "unset = $unset"
echo "null  = $null"
    
por 19.10.2011 / 09:30
1

se eu entendi bem,

env | grep -q ^$VAR && logger -t varlogger "var is unset"

test -f $VAR || touch $VAR

    
por 19.10.2011 / 12:02