GNU/Linux >> Linux の 問題 >  >> Linux

シェルがログイン/インタラクティブ/バッチであるかどうかを確認する方法は?

インタラクティブ、ログイン、バッチシェルの違いを理解していると思います。詳細については、次のリンクを参照してください。

  • 「ログイン」と「インタラクティブ」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'

「バッチ」とは、「インタラクティブではない」という意味だと思います。したがって、インタラクティブシェルのチェックで十分です。


Linux
  1. ターミナルで使用しているシェルをテストする方法は?

  2. 使用しているシェルを確認するにはどうすればよいですか?

  3. Linuxでシェルを変更する方法

  1. Linuxのログイン履歴を確認する方法

  2. CentOS のバージョンを確認する方法

  3. * nixでログイン時にスクリプトを実行するにはどうすればよいですか?

  1. Bashrcが現在のシェルがインタラクティブであるかどうかをチェックするのはなぜですか?

  2. Osxログインシェルのインタラクティブシェルがデフォルトであるのはなぜですか?

  3. シェルスクリプトBashでサブストリングをチェックする方法は?