1. 概要

このチュートリアルでは、現在のシェルでtxtファイルにあるbashコマンドを実行する方法を見ていきます。

2. bashを使用する

sample.txtというファイルがあります。このファイルには1つのechoコマンドと変数セットが含まれています。

$ cat sample.txt
echo "Hello World!"
var="variable is set"

bashコマンドを使用してファイルを実行できます。

$ bash sample.txt
Hello World!

bashはファイルの内容を読み取り、現在のシェルで実行します。 したがって、ファイル内のすべての定義済み変数にアクセスできます。

$ echo $var
variable is set

bash でファイルを実行するために、実行権限を取得するためにchmodを使用する必要がないことに注意してください

bash は、システムにインストールされているシェルの1つです。 したがって、インストールされている他のシェルも使用できます。 使用可能なすべてのシェルのリストを表示するには、 / etc /shellsファイルを確認できます。

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash

使用可能な任意のシェルを使用してファイルを実行できます。 shを使用してファイルを実行してみましょう。

$ sh sample.txt
Hello World!

3. ソースを使用する

sourceコマンドを使用してファイルを実行してみましょう。

$ source sample.txt
Hello World!

sourceはファイルを読み取り、現在のシェルの行を実行します。 したがって、変数を設定した場合、その変数は設定されたままになり、スクリプトに exit コマンドがある場合、セッションは終了します。

$ echo $var 
variable is set

4. ドットの使用

ドットを使用してファイルを実行することもできます。

$ . sample.txt
Hello World!

ドットの機能はソースコマンドと同じです。

4.1. ドットスラッシュ(./)が異なる

/sample.txtを実行すると、 Hello World!ステートメントも出力されますが、変数は設定されていません。

$ ./sample.txt
Hello World!

./(ドットスラッシュ)を使用すると、別のシェルでファイルが実行され、bashシェルが終了するとすべての変数が破棄されます。 したがって、 $var変数は空になります。

$ echo $var
 

この場合、ファイルを実行するには実行権限が必要であることに注意してください。

5. 結論

この記事では、テキストファイルからbashコマンドを実行する方法について説明しました。 インストールされているシェル、 source 、またはdotのいずれかを使用できます。