質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

3回答

1900閲覧

unixのコマンドに関する質問

退会済みユーザー

退会済みユーザー

総合スコア0

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2015/11/13 00:33

unix(シェルはbash)上でgaussian09というソフトを使います.
計算を実行する時のコマンドの意味が分からないのでご教授下さい.
gaussian09は/usr/local/g09にインストールされており,/workをワークディレクトリに使います.g09rootはg09ディレクトリがある場所で,GAUSS_SCRIDERはワークディレクトリの場所です.(新版すぐ分かる量子化学計算 p.33より)

$ export g09root=/usr/local
$ . $g09root/g09/bsd/g09.profile
$ export GAUSS_SCRIDER=/work

二行目と三行目が分かりません.
「. $〜」とはどういった意味でしょうか?

$ PATH=$PATH:/usr/local/g09/bsd/g09.profile
$ export PATH
とするのとは異なりますか?

unix初心者で,また質問内容がteratailの趣旨とは異なるかもしれませんが,よろしければ解説お願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

まず、1行目で
export g09root=/usr/local
を実行した時点で、環境変数 g09root の値が /usr/local になっています。

それで2行目の
. $g09root/g09/bsd/g09.profile
を実行する時点では
. /usr/local/g09/bsd/g09.profile
を実行しているのと全く同じです。

次に . コマンドは source コマンドと等価(短縮形)なので、何かを実行するのではなくて「現在のshell」に下記ファイルの内容を「読み込む」という動作をします。
/usr/local/g09/bsd/g09.profile

コマンド(あるいはシェルスクリプト)の 実行 とソースの 読み込み は何が違うかというと、実行 の場合は新規に生成された 子プロセス として稼働するので、その中で設定された変数の値は 親プロセス である現在のシェル環境には反映されないですが、現在のシェルに 読み込まれる とシェルが解釈して変数に対する設定値が現在のシェル環境にそのまま反映されます。

ちなみに

$ PATH=$PATH:/usr/local/g09/bsd/g09.profile $ export PATH

とすると、コマンドサーチパスに
/usr/local/g09/bsd/g09.profile
というパスを追加するという意味になりますが、追加したのがディレクトリではなくてファイルパスなので、次回コマンド実行時に存在しないコマンド名を入力するとファイルパスの配下を参照しようとして意味不明のエラーが発生する可能性があります。

ところで、bash を使われるならば、ひたすら下記の Manpage を読むことを強く推奨致します。
Bash

バージョンによる違いはありますが、Bashの機能についてどの資料よりも網羅的に詳しく書かれており何度読んでも新たな気付きがあります。

ただ、結構膨大なので・・・下記のまとめもオススメです。
BASHでの変数について

投稿2015/11/13 04:33

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Running Gaussian

$g09root/g09/bsd/g09.profile Bourne shell

とあるので、中身はBourne shellなのでしょう。

他のサイトではsourceを使って紹介しているところもありますが、上記のサイトでは

.profile files:
g09root=location
export g09root
. $g09root/g09/bsd/g09.profile

と紹介されていますね。
新版すぐ分かる量子化学計算ではsourceではなく.を使ったのでしょう。

シェルを実行しているので、質問にある

$ PATH=$PATH:/usr/local/g09/bsd/g09.profile
$ export PATH

とは処理が異なります。

ご質問の三行目が不明とのことですが

$ export GAUSS_SCRIDER=/work

一行目が理解されているので、ミスですよね…。

投稿2015/11/13 02:27

anonymouskawa

総合スコア856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

.は、指定したファイルをスクリプトとして実行するコマンドです。

独立したシェルで実行するのではなく、スクリプトを現在のシェルで実行するため、環境変数などの設定が維持されます。
そのため、環境変数の初期化などを行うために、ログイン時に.profileなどを読み込む際などに使います。

sourceというコマンドも同様です。

今回の場合は、$g09root/g09/bsd/g09.profileに設定などが書かれているので、それを実行してgaussian09の初期設定などを行うのでしょう。

投稿2015/11/13 01:07

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問