- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルについて)
シェルについて
このQ&Aのポイント
- ターミナルの挙動を教えてください
- OS10.8でtcshを使い、perlを入力するとエラーメッセージが表示されますが、環境変数の設定でエラーが解消しました。しかし、tcshからbashを起動するとエラーが出なくなります。この挙動は疑問です。
- tcshから子シェルbashを起動してもperlでエラーが出ないのはなぜでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 >lsなどは組み込みコマンドなんで理解できます ls はシェルの組み込みコマンドではありません。/bin/ls か /usr/bin/ls にある外部コマンドです。 立場的には、/bin/bash と同じ。 >bashはexportじゃないのかなと思いました bashが親プロセスから引き継いだ環境変数以外に、新たに環境変数を追加するときに使うコマンドがexportです。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
文章がわかりにくいのですが、 tcshからbashを起動した場合、tcshで設定した環境変数はbashに引き継がれるのか? という意味なら、そうです。bash起動時に設定される物以外は引き継がれます。 もちろんbash以外でもなんでも子プロセスに引き継がれます。perlとか、ls とか。 そもそも環境変数というのはそのためのもの(子プロセスに設定を引き継ぐための物)です。
質問者
補足
回答ありがとうございます >tcshからbashを起動した場合、tcshで設定した環境変数はbashに引き継がれるのか? そのとうりです lsなどは組み込みコマンドなんで理解できます bashはexportじゃないのかなと思いました デフォルトの親bashで試してみたらperl入力で警告出ませんでした 環境変数のみ子プロセスに引き継がれるんですね
お礼
わかりやすい回答ありがとうございます