コマンドを実行すると、ある種の出力が生成されます。プログラムの結果が生成されると想定されるか、プログラム実行の詳細のステータス/エラーメッセージが生成されます。コマンドの出力を変数に保存して、後の操作で使用したい場合があります。
この投稿では、シェルコマンドの出力を変数に割り当てるさまざまな方法を確認します。これは、シェルスクリプトの目的に特に役立ちます。
コマンドの出力を変数に格納するには、以下の形式でシェルコマンド置換機能を使用できます。
variable_name=$(command) variable_name=$(command [option ...] arg1 arg2 ...) OR variable_name='command' variable_name='command [option ...] arg1 arg2 ...'>
以下は、コマンド置換を使用するいくつかの例です。
この最初の例では、who
の値を格納します (システムにログオンしているユーザーを示します)変数CURRENT_USERS
のコマンド ユーザー:
$ CURRENT_USERS=$(who)
次に、echoコマンドを使用して表示された文で次のように変数を使用できます。
$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
上記のコマンドの場合:フラグ-e
エスケープシーケンス(\n
など)を解釈することを意味します 改行用)使用。時間とメモリの浪費を避けるために、echoコマンド内で次のようにコマンド置換を実行するだけです。
$ echo -e "The following users are logged on the system:\n\n $(who)"
次に、2番目の形式を使用して概念を示します。現在の作業ディレクトリにあるファイルの総数を、FILES
という変数に保存できます。 およびエコー 後で次のように:
$ FILES=`sudo find . -type f -print | wc -l` $ echo "There are $FILES in the current working directory."
これで、この記事では、シェルコマンドの出力を変数に割り当てる方法について説明しました。以下のフィードバックセクションから、この投稿に自分の考えを追加できます。