source ソース

英語表記source

日本語表記スクリプト読み込み

別名.

正式名称source

危険度注意

What does it mean?

ファイルを新しいシェルで起動せず、現在のシェルへ読み込んで実行します。環境変数や関数定義を現在のシェルへ反映したい時に使います。

Command Quest

source を今日の道具にする

ファイルを新しいシェルで起動せず、現在のシェルへ読み込んで実...

$ source ファイル [引数 ...] . ファイル [引数 ...]
関連用語11
次のコマンド0
FAQ1
参照4

概要

ファイルを新しいシェルで起動せず、現在のシェルへ読み込んで実行します。環境変数や関数定義を現在のシェルへ反映したい時に使います。

基本構文

source ファイル [引数 ...]
. ファイル [引数 ...]

詳細解説

sourceは、指定したファイルの内容を現在のシェル環境へ読み込み、その場で実行するBash組み込みコマンドです。新しいプロセスを作るのではなく、現在のシェルで実行するため、変数、関数、カレントディレクトリ、シェルオプションなどの変更がそのまま残ります。

~/.bashrcの再読み込み、関数集の導入、環境設定の反映に便利ですが、読み込むファイルの内容がそのまま現在のシェルへ影響するため、信頼できないファイルをsourceするのは危険です。

移植性の観点では、POSIX shで標準なのはsourceではなくドットコマンド(.)です。

このコマンドを使う場面

~/.bashrcの変更をログインし直さず反映したい時、関数や補助設定を現在のシェルへ取り込みたい時、環境変数を今の端末へ反映したい時に使います。

まず安全に試す方法

1. printf "%sn" "MYVAR=demo" > /tmp/demo.sh
2. source /tmp/demo.sh
3. printf "%sn" "$MYVAR"

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 小さな設定ファイルを作り、sourceで読み込んで値が残ることを確認します。

資格試験との関連

  • 共通基礎
    範囲: 試験横断の基礎操作
    根拠: editorial
    sourceは、シェルの解決順や互換性差分の理解に関わるため、試験と実務の橋渡しとして重要です。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、sourceはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。

オプション

主な書式
1. source ファイル
2. source ファイル 引数...
3. . ファイル

実行結果サンプル

  • printf "%sn" "MYVAR=demo" > /tmp/demo.sh source /tmp/demo.sh printf "%sn" "$MYVAR"
    demo

戻り値コード

  • 0 正常に読み込みと実行が完了しました。
  • >0 ファイルが見つからない、読み込めない、またはファイル内処理でエラーが起きました。

使用例

  • source ~/.bashrc
  • . ./env.sh
  • source ./functions.sh

よくあるエラー

  • /bin/shでsourceが使えない
    原因: sourceはBash系で一般的な書き方で、POSIX shでは.を使います。
    対処: 移植性が必要なら. ファイルに書き換えます。

導入・互換性情報

sourceはBashの組み込みです。POSIX shの移植性を考える場合は. ファイルを使います。Dashなどの/bin/shではsourceが使えないことがあります。

  • Debian GNU/Linux / 13 / Bash 5.2.37

注意点 / セキュリティリスク

現在のシェルへ直接影響するため、読み込んだファイルがPATH、alias、関数、setオプション、作業ディレクトリを変更すると、その後の端末挙動が変わります。

FAQ

  • Q. sourceとbash ファイルの違いは何ですか。
    A. sourceは現在のシェルで実行し、bash ファイルは新しいBashを起動して別プロセスで実行します。

関連用語

  • シェル
  • Bash
  • Zsh
  • Fish
  • POSIXシェル
  • shell function
  • shebang
  • script
  • Bash scripting
  • virtual environment
  • venv

参照リンク

関連記事