web-dev-qa-db-ja.com

現在のシェルのファイルからコマンドを実行する

ターミナルの現在のシェルでファイル(スクリプト)からコマンドを実行したい。

例:ファイルch_dirには以下が含まれています:

#!/bin/bash
cd /usr

通常、次のようにファイルを実行すると、different Shellでコマンドが実行されます。

pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$

ここでcd /userは異なるシェルで実行されます。

しかし、現在のシェルで実行したいです。それ、どうやったら出来るの?

注:ここでcdは説明のためにのみ使用されます。質問の目的は、任意の現在のシェルのコマンドを実行することです

8
Pandya

組み込みコマンドを使用source(from help -m source):

source-現在のシェル内のファイルからコマンドを実行します。

質問に記載されている実行の例:

pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$ 

ここでは、cd /usr現在のシェルで実行されているため、現在のシェルのディレクトリが変更されています。

これが現在のシェルのファイルからコマンド入力を実行するのに役立つことを願っています。

15
Pandya

次のように.を指定してスクリプトを実行するだけです。

pandya@pandya-desktop:~$ . ./ch_dir
5
mehdy