Bash変数でコマンドを実行する方法は?

Bash How Execute Command Variable



Bashスクリプトはさまざまな方法で作成でき、私たちのほとんどはBashスクリプト内での単純なコマンドの実行に精通しています。ただし、これらのコマンドは、Bashの変数内にカプセル化することもできます。このプロセスはコマンド置換と呼ばれ、通常、コマンドの出力を変数に格納するために使用されます。そのため、そのコマンドを明示的に何度も実行する必要はなく、単にその変数にアクセスしてそのコマンドの出力を取得できます。いつでも好きなときに。この記事では、これを行う方法を紹介します。

注:以下に示すすべてのシナリオは、Ubuntu20.04で実行されています。ただし、他のLinuxフレーバーでもまったく同じように機能します。







Bashの変数でコマンドを実行する方法:

Bashの変数でコマンドを実行する方法を示すために、次の3つの異なるシナリオを紹介します。



変数に格納されているechoコマンドの実行:

これは、変数に格納されているechoコマンドを実行することが目標である最も単純なシナリオです。それを実現するには、以下に説明する一連の手順に従う必要があります。



ステップ1:Bashスクリプトの作成:

次の画像からわかるように、ファイルマネージャーアイコンをクリックする必要があるホームフォルダーにBashスクリプトを作成する必要があります。





次に、ホームフォルダ内の任意のスペースを見つけて右クリックし、メニューを起動します。このメニューから[新しいドキュメント]オプションを選択し、次にサブカスケードメニューから[空のドキュメント]オプションを選択します。これを行うと、ホームフォルダに新しいドキュメントが作成されます。次に、この新しく作成されたドキュメントの名前を、任意の名前に続けて.sh拡張子を付けます。この例では、CommandVar.shという名前を付けています。



このファイルにBashスクリプトを作成するには、スクリプトをダブルクリックして開き、下の画像に示すスクリプトをBashファイルに入力します。ここで、スクリプトの最初の行、つまり#!/ bin / bashは、このファイルが実際にはBashファイルであることを示しています。次に、testという名前の変数を作成し、それに値$(echo Hi there!)を割り当てました。コマンドを変数に格納する場合は常に、$記号を前に付けてそのコマンドを入力する必要があります。この場合、echoコマンドをテスト変数に格納したかったので、echoコマンドの後にランダムなメッセージを入力し、丸括弧で囲み、その前に$記号を配置しました。したがって、このechoコマンドを実行する場合は、テスト変数にアクセスする必要があります。そのため、テスト変数に格納されているエコーコマンドが正常に実行できるかどうかを確認するために、別のエコーコマンドを使用してテスト変数の出力を端末に出力しました。このスクリプトを入力したら、ファイルを保存して閉じる必要があります。

ステップ2:ターミナルを介してBashスクリプトを実行する:

次に、ターミナルを介してこのスクリプトを実行する必要があります。したがって、Ubuntu 20.04でターミナルを開き、次のコマンドを入力します。

bashCommandVar.sh

Enterキーを押してこのコマンドを実行すると、端末に次の出力が表示されます。ここで、出力の強調表示された部分は、テスト変数に格納されたechoコマンドの出力です。

変数に格納されているseqコマンドの実行:

このシナリオでは、変数に格納されているseqコマンドを使用して、一連の数値を出力します。これを発生させるために、次の手順を実行して、上記で作成したBashスクリプトを変更します。

ステップ1:上記で作成したBashスクリプトの変更:

上記の方法で作成したBashファイルを開き、次のスクリプトを入力します。ここでは、sequenceという名前の変数を作成しました。私たちの目標は、seqコマンドを使用しながら1から10までの数字を出力することです。そのために、シーケンス変数に値$(seq 1 10)を割り当てました。必要に応じて、他の任意の範囲の数値を指定することもできます。 seqコマンドの後の最初の数字はシーケンスの下限を示し、2番目の数字は上限を示します。このスクリプトを入力したら、ファイルを保存して閉じます。

ステップ2:ターミナルを介して変更されたBashスクリプトを実行する:

ここで、上記で説明したのと同じ方法でBashスクリプトを実行すると、次の画像に示すように、端末で指定されたシーケンスを確認できます。

変数に格納されている「pwd」コマンドの実行:

変数に格納されているpwdコマンドを使用して、作業ディレクトリを印刷することもできます。これを実証するために、以下の手順に従って、上記で作成したBashスクリプトをもう一度変更します。

ステップ1:上記で作成したBashスクリプトの変更:

変更したばかりのBashファイルを開き、次の画像に示すスクリプトを入力します。このスクリプトでは、working_directoryという名前の変数を作成し、それに値$(pwd)を割り当てました。 pwdコマンドは、その出力、つまり現在の作業ディレクトリをworking_directory変数に格納するだけです。 pwdコマンドが正しく実行されたかどうかを確認するために、echoコマンドを使用して端末にworking_directory変数の値を出力しました。このファイルを保存し、変更したBashスクリプトを入力して閉じます。

ステップ2:ターミナルを介して変更されたBashスクリプトを実行する:

ここで、上記で説明したのとまったく同じ方法でこのBashスクリプトを実行します。このBashスクリプトの出力には、現在の作業ディレクトリが表示されます。出力の強調表示された部分は、実際には、pwdコマンドの出力です。

結論:

この記事では、Bashの変数内に格納されているコマンドを実行し、コマンドを個別に実行した場合と同じ出力を取得する方法について、非常に優れたアイデアを提供します。