重複の可能性:
シェルスクリプトを実行するさまざまな方法
下記のコマンド間の具体的な違いは何ですか?
./<scriptname>
. <scriptname>
bash <scriptname>
誰でもこれらの違いを簡単な言葉で説明できますか?
答え1
./<scriptname>
子プロセスで実行し<scriptname>
、終了するのを待ちます。
. <scriptname>
<scriptname>
同じプロセスで実行され、それを使用する理由は、通常、<scriptname>
新しいプロセスのリソースコストを発生させることなく環境を変更し、追加のタスクを実行できるようにするためです。
bash <scriptname>
bashに実行するように指示します<scriptname>
。<scriptname>
上部にbash()へのパスを持つshebangがある場合は、実行するのと#!/bin/bash
同じ効果があります<scriptname>
。他のインタプリタ()<scriptname>
を指す場合、通常はそのプログラムによって解釈されますが、要求して上書きします。解釈するにはbashを使用してください。#!/bin/sh
<scriptname>