![シェルスクリプトを実行するための3つのコマンドの違いは何ですか? [コピー]](https://linux33.com/image/27797/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE3%E3%81%A4%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
重複の可能性:
シェルスクリプトを実行するさまざまな方法
下記のコマンド間の具体的な違いは何ですか?
./<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>