if [[ -o login ]]; then
echo "I'm a login shell"
fi
if [[ -o interactive ]]; then
echo "I'm interactive"
fi
[[ -o the-option ]] retornará verdadeiro se a opção estiver definida.
Você também pode obter os valores das opções com a matriz associativa especial $options ou executando set -o .
Para verificar se há um agente ssh:
if [[ -w $SSH_AUTH_SOCK ]]; then
echo "there's one"
fi
Em ksh (e zsh ):
case $- in (*i*) echo interactive; esac
case $- in (*l*) echo login; esac
Em bash , é uma bagunça, você precisa:
case $- in *i*) echo interactive; esac # that should work in any Bourne/POSIX shell
case :$BASHOPTS: in (*:login_shell:*) echo login; esac
E $SHELLOPTS contém mais algumas opções. Algumas opções que você pode definir com set -<x> , algumas com set -o option , algumas com shopt -s option .