LoginSignup
2
3

More than 3 years have passed since last update.

interactive shell, login shellとは

Posted at

2.1: Types of shell: interactive and login shells - A User's Guide to the Z-Shellを参照して記述

interactive shell

  • まずshellとは「コマンドのリストを受け取り、ただそれを実行するもの」である。
  • interactive shellとは、その言葉通り「対話的」なshellであり、ユーザーが何かコマンドを入力をし、結果を待ち、結果が返ってきた後にまた何か入力する、というやりとりが出来るものをいう。
  • 一方fileを読み込んで処理する場合は non-interactiveである。またこのとき実行するfileをscriptと呼ぶ。
    • interactive shellから zsh filename のようにコマンド入力して実行する場合、interactive shell上から、non-interactiveなshellが走っている。

login shell

  • これも言葉通り password入力などでログインして使えるshellのこと。
  • またlogin shellを起動するもう一つの方法として、-l optionを使うものがある。たとえば zsh filename とするだけなら、これはlogin shellではないが、 zsh -l filename とすれば、login shellでscriptを実行可能。

interactive shell, login shellの判別方法

  • 以下をzshにて実行すれば、login shellのときは yes、そうでないときは no と出力される。
if [[ -o login ]]; then
  print yes
else
  print no
fi
  • interactive shellかどうかは、対話可能であるかで判断できる。
  • またlogin shell同様に以下を実行すれば、interactive shellのときは yes、そうでないときは no が出力される。
if [[ -o interactive ]]; then
  print yes
else
  print no
fi

おまけ - 調査方法

  • ***が分からない、そういう時はまずmanualやdocumentを見るべきなはず。
  • ということで man zsh を見た。

    • なお以下のversionを利用
$ zsh --version
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
  • manualを斜め読みすると、どうやら http://zsh.sourceforge.net/Guide/ にユーザーガイドがあるとわかる。よってユーザーガイドを詳しく読んだ
    • 正直manualが読みやすいとは思っていない。
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3