• ベストアンサー

bashの-iオプションについて

bashに「-i」オプションがあります。 Manで調べても意味がわかりません。 実際、bash -iを試してみても「-i」オプションが無い場合と動きがかわらないように思われます。 このオプションの意味についてどなたかおしえていただけないでしょうか? [root@localhost ~]# man bash -I -I オプションが指定されると、 bash は 対話的 (interactive) に動作します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

>結果、双方ともプロンプトが現れただけでした。 bash Enter と、bash -i Enter ?? 対話シェル同士比べても同じなのは当たり前。 >対話的なシェルとは、オプションでない引数がなく、標準入力と標準出力がいずれも端末に接続されていて、 -c オプションが指定されていない状態で起動されたシェル、または -i オプション付きで起動されたシェルのことです。 ↑なので、bash Enter は対話シェルです。 bash -c date と bash -i -c date を比べると後者だけ対話シェルなので動作が違います。 例えば、.bashrc に echo bashrc-call などと書いておくと、後者だけ.bashrcを読み込むのがわかるでしょう。 あと、割り込み関係の違いをチェックするのはちょっと難しいかな。

goovbs2
質問者

お礼

試したところ違いがはっきりしました。 ありがとうございます。 [root@localhost ~]# bash -c date 2008年 11月 9日 日曜日 10:33:29 JST [root@localhost ~]# bash -i -c date bashrc-call 2008年 11月 9日 日曜日 10:35:05 JST

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

>実際、bash -iを試してみても「-i」オプションが無い場合と動きがかわらないように思われます。 何を試して、何故そう思ったのですか?

goovbs2
質問者

補足

bashコマンドとbash -iコマンドを試しました。 結果、双方ともプロンプトが現れただけでした。

関連するQ&A

  • bash --login -i ??

    windows の cygwin でセットアップされる cygwin.bat を見ると、 bash --login -i と書いてあります。 --login 、-i とは何だろう、と思って man bash とすると、 --login はログインシェル -i はインタラクティブモード となっています。 (1) ログインシェルとはなんでしょう? 気づいたこととしては、コマンドプロンプトから bash と入力するだけのときと、--login をつけたときでは、プロンプトがちがうようです。(.bashrcを読み込まない?) (2) インタラクティブモードとはなんでしょう。 -i をつけたときとつけなかったときで、特に目に見えた違いはわからなかったのですが。。

  • mountオプションについて

    mountオプションのpamconsole、managedの解説がman(2)にもman(8)にもありません。 どのマニュアルをみればわかるでしょうか? [root@localhost ~]# vi /etc/fstab /dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0

  • sedの-iオプション

    man sedで探したのですが-iオプションの説明がありません。 実際sed -iで動かしてみると自ファイルを更新できました。 LINUX上で-iオプションの説明を参照するにはどうすればよいでしょうか?

  • serviceコマンドのmanがない

    man serviceでserviceコマンドのマニュアルを参照しようと思ったのですが、マニュアルがありませんでした。 serviceコマンドのオプションなど仕様を知りたいのですがどうしたらよいでしょうか? [root@localhost ~]# man service service のマニュアルはありません。

  • コマンド履歴が~/.bash_historyに保存されない

    通常、コマンド履歴は~/.bash_historyに保存されるはずだと思っていましたが保存されていないようです、原因がわかりません。 助けて頂けませんでしょうか [root@localhost sub]# su - hoge [hoge@localhost ~]$ ls Desktop i a testdir ec.txt [hoge@localhost ~]$ tail ~/.bash_history set|grep abc abc=`date` set|grep abc echo $abc abc=1 echo $abc abc=$(date) echo $abc alias exit

  • シェルスクリプト bashのtestコマンドが動きません

    こんにちは、ど素人なのにシェルスクリプト仕事で書かされ苦しんでます。 SUN-solaris8で動作したシェルをLinuxE3.0へ移動させたら testコマンドでエラーになりました。 SUN-solaris8ではbsh LinuxE3.0ではbashです。 test -s file名は両方で認識するようですが、 test -s ../directory名/file名で指定して 実行するとSUNでは動作したのですが Linuxではわけの分からないメッセージが出て終了。 Linuxで % sh と打つと/bin/bash % test と打つと /XXX/usr/binだったかな?パス忘れました。 % man bashでマニュアル見るとtestは[]で囲め?   英語だから良く分からなかった。   疲れたので今日は諦めました。 testコマンドで良い解決法ご教示願います。 情報が不足なら指摘いただいた物を追加いたします。

  • 英語の理解について:I am a man

    こんばんは。英語の理解の仕方について質問させて頂きます。 僕は、I am a man. という英文を理解する場合に、I am a man と聞いてから I am a man という内容を理解します。つまり、あるまとまり毎に内容を理解していきます。 I で Iを、am で am を、a man で a man を、という風に瞬間的に理解していくことはありません。 実際に英語に慣れた方々も同じような感じなのでしょうか。それとも耳に入ってきた音をその瞬時に理解していくのでしょうか。 僕は現在、TOEIC 750、米政治家の演説が理解できるくらいの段階です。 宜しくお願い致します。

  • cpの-H -L -Pオプションについて

    こんにちは。 cpコマンドでディレクトリをまるごとコピーする際の話なのですが、-H,-L,-Pオプションの違いについて悩んでいます。 man cpでは、 -H 処理は、source_file オペランドとして指定したシン ボ リッ クリンクが参照するファイルの種類と内容に基づい て行われます。 -L 処理は、source_file オペランドとして指定したシン ボ リッ ク リ ンク、あるいは、ファイル階層の検索中に出 会ったシンボリックリンクが参照するファイルの種類 と 内容に基づいて行われます。 -P 処理は、source_file オペランドとして指定したシン ボ リッ ク リ ンク、あるいは、ファイル階層の検索中に出 会ったシンボリックリンク自身に行われます。 と出ます。いったいなにが言いたいのかわかりません(^^; 実際試してみると、-H,-Pはシンボリックリンクファイルはそのままシンボリックリンクファイルとしてコピーされ、-Lはシンボリックリンクファイルが普通のファイルになってコピーされます。-Hと-Pは実際どのように違うのでしょうか?また、-Lについても、manでの意味がわかりません。 どなたか、それぞれの動作の違いと、manでの意味について解説願えないでしょうか?参考になるページでも構いません。よろしくお願いします。 Solarisのバージョンですが、manの最後には SunOS 5.10 と表示されています。

  • gnome-terminalの使い方教えてください

    # gnome-terminal -e "sh -c 'ssh localhost;cd ビデオ;exec bash'" を実行するとこれを実行したgnome-terminalとは別に新たなgnome-terminalが開かれ localhostの/root/ビデオ のディレクトリに移動できます. ところが # gnome-terminal -e "sh -c 'ssh 192.168.2.6;cd ビデオ;exec bash'" を実行してもこれを実行したgnome-terminalとは別に新たなgnome-terminalが開かれますが 192.168.2.6のPCの/root のディレクトリに移動してしまい 192.168.2.6のPCの/root/ビデオ に移動できません. 後者の場合に 192.168.2.6のPCの/root/ビデオ に移動させる方法はあるでしょうか? よろしくお願いします.

  • CGIの動作原理とbashの関わり

    特別に作成された環境変数を使用した Bash コード挿入の脆弱性 https://access.redhat.com/ja/articles/1210893 こちらについて発生した脆弱性の危険性を調べている時に感じたので質問させて下さい この問題が出るまで深く考えたことがなかったのが恥ずかしいのですが そもそもApacheから、CGIとしてプログラムを呼ばれるときには、どのような動作原理で呼ばれているのでしょうか? 私なりに考えた感じでは 1. リクエストがCGIとして実行するべきか調べる(普通は拡張子がcgiのファイルを実行) 2. 実行すべきファイルの先頭行を読んで 「!#/bin/bash」等の実行ファイルを指定している行を見つける 3. httpリクエストの内容をすべて実行ファイルに引き渡す なのかなぁと感じていたのですが実際どうなのでしょうか? 結局、bashがどう関わるのかというのが分かれば今回の影響範囲が分かるので ご存知のかたいらっしゃいましたらご教授お願い致します