インタラクティブ、ログイン、バッチシェルの違いを理解していると思います。詳細については、次のリンクを参照してください。
- 「ログイン」と「インタラクティブ」bashシェルの違いは何ですか(姉妹サイト:serverfault.comから)
- 2.1:シェルの種類:インタラクティブシェルとログインシェル(ユーザーガイドからZシェルまで )
私の質問は、インタラクティブ、ログイン、またはバッチシェルを使用している場合、コマンド/条件を使用してテストするにはどうすればよいですか?
コマンドまたは条件(true
を返す)を探しています またはfalse
)そして、ifステートメントに配置することもできます。例:
if [[ condition ]]
echo "This is a login shell"
fi
承認された回答:
bash
を想定しています タグにシェルがリストされていないため、シェルなど。
インタラクティブシェルを使用しているかどうかを確認するには:
[[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'
ログインシェルを使用しているかどうかを確認するには:
shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'
「バッチ」とは、「インタラクティブではない」という意味だと思います。したがって、インタラクティブシェルのチェックで十分です。