ターミナルの現在のシェルでファイル(スクリプト)からコマンドを実行したい。
例:ファイルch_dir
には以下が含まれています:
#!/bin/bash
cd /usr
通常、次のようにファイルを実行すると、different Shellでコマンドが実行されます。
pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$
ここでcd /user
は異なるシェルで実行されます。
しかし、現在のシェルで実行したいです。それ、どうやったら出来るの?
注:ここでcd
は説明のためにのみ使用されます。質問の目的は、任意の現在のシェルのコマンドを実行することです
組み込みコマンドを使用source
(from help -m source
):
source-現在のシェル内のファイルからコマンドを実行します。
質問に記載されている実行の例:
pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$
ここでは、cd /usr
が現在のシェルで実行されているため、現在のシェルのディレクトリが変更されています。
これが現在のシェルのファイルからコマンド入力を実行するのに役立つことを願っています。
次のように.
を指定してスクリプトを実行するだけです。
pandya@pandya-desktop:~$ . ./ch_dir