Suponha que você queira que seu script pegue variáveis do ambiente:
#!/usr/bin/env bash
set -eu
if (( ${A-} )); then
echo true
else
echo false
fi
A expansão aritmética parece ser mais razoável aqui para lidar com (empty)
, 0
, 1
cases, ou então:
if [ "${A-}" ] && [ "${A-}" != 0 ]; then
Mas então,
$ A='1 - 1' ./1.sh
false
$ A='B = 1' ./1.sh
true
Então agora você pode basicamente alterar variáveis, o que geralmente não deseja permitir. O que você sugeriria? Como processar sinalizadores booleanos retirados de variáveis de ambiente?
Se você não tiver certeza se a variável contém um int, você pode validar seu valor:
Isto é o mais longe que eu poderia levá-lo.