0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Linux][command] シェルスクリプト_実行_bash, sh, source, . , exec

Last updated at Posted at 2025-04-19

bash, shコマンド

  • bash, shコマンドはサブシェルを起動してシェルスクリプトを実行する
$ bash シェルスクリプト

or

$ sh シェルスクリプト

sourceコマンド (.)

  • sourceコマンドは現在のシェルで直接シェルスクリプトを実行する
  • 実行権
$ source シェルスクリプト

or

$ . シェルスクリプト

execコマンド

  • execコマンドは現在のプロセスを指定したコマンドに置き換える(元のシェルには戻らない)
$ exec コマンド
  • 現在のシェルが終了し、指定したコマンドがそのプロセスを置き換える
  • シェルスクリプト内で exec を使うと、その後の処理は行われない
  • ログインシェルで使うと、ログアウト状態になることもあるので注意

各コマンドの違い

コマンド 処理される場所 シェルの動作 ユースケース
bash script.sh
sh script.sh
サブシェル(新しいプロセス) スクリプト終了後に戻る 新しい環境で安全にスクリプトを実行したいとき
source script.sh
. script.sh
現在のシェル シェル内で直接実行 環境変数や設定を今のシェルに反映させたいとき
exec script.sh 現在のプロセス置き換え 元のシェルが消える スクリプトに完全に置き換える(戻らない)必要があるとき

権限

実行方法 ファイルの読み取り権 (r) ファイルの実行権 (x) ディレクトリの実行権 (x) 備考
bash script.sh bash がスクリプトを読み込んで実行。読み取り権が必要で、実行権は不要。
source script.sh
. script.sh
現在のシェルに読み込むため、読み取り権が必要。実行権は不要。
exec script.sh exec新しいプロセスを起動せず現在のシェルを置き換える
./script.sh のように使うのが一般的で、その場合は 実行権が必要

Ping-t

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?