set -u
, başvurulan herhangi bir ilişkisiz değişken varsa komut dosyası başarısız olacağını biliyorum, ancak benim bash komut dosyasında, ben bir şey yapmadan önce belirli bir değişkenin bir if deyiminin içinde bulunup bulunmadığını kontrol ediyorum. böylece:Bir değişkenin bozuk olup olmadığını nasıl kontrol ederim VE bash prelüdümde -u set -u kullanın?
-bash: SOME_VARIABLE: unbound variable
[Process completed]
: benim başlangıcı içinde
set -eu
yukarıdaki çalıştırmayı denerseniz
if [[ -z "${SOME_VARIABLE}" ]] ; then
echo '$SOME_VARIABLE' is not set
else
do_stuff_with_SOME_VARIABLE
fi
Ancak, biraz mantığa aykırı benim yapmaya çalıştığım şey bu verilen görünüyor aşağıdaki hatayı olsun
Gördüğünüz gibi, aslında '$SOME_VARIABLE
'u kullanmaya çalışmıyorum' unset, bu yüzden bilmek istediğim, eğer (ben bunları argüman olarak iletmek veya onlara dize manipülasyonları uygulamak gibi) unset değişkenlerini kullanmaya çalıştığımda betiğin başarısız olmasının bir yolu var mı? sadece unsetilmediklerini görmek için mi kontrol ediyorlar? null
if [ -z "${SOME_VARIABLE:-}" ]; then
echo '$SOME_VARIABLE' is not set
else
do_stuff_with_SOME_VARIABLE
fi
Bu genişletir $SOME_VARIABLE
:
Sadece mükemmel. – kevinarpe