/echoコマンドの詳細まとめました【Linuxコマンド集】2018.10.10echoコマンドの詳細まとめました【Linuxコマンド集】LinuxコマンドTweetPocketechoは画面に文字列や数値、変数を表示するLinuxコマンドだ。「エコー」と読み、そのまま繰り返す「こだま・反響」を意味するコマンドだ。このページでは様々な表示方法とその応用を解説する。今まで使ってこなかった方もこの機会にぜひechoの使い方を覚えておいてほしい。使い方は、次のとおりシンプルだ。表示するもの画面に文字列を表示するにはこれだけだ。画面にHello!という文字を表示する場合は、次のコマンドだ。Hello!Hello!の文字列が表示できた。上記echoコマンドを試すなら下のコマンドをLinux上で実行すればすぐに再現可能だ。以降も同様にLinux上で試すためのコマンドを一通り置いておくので、実際に叩いてみてほしい。Hello!変数を表示する。echoはコンピュータ内の変数の値を表示することができる。「=」との間にスペースなどは入れない。今回は変数aに1200という数字を格納する。a=1200変数の表示は、$に続けて変数名を入力する。変数aを表示する場合は、次のとおりだ。$a変数aの内容、1200が表示された。$a変数と文字列を同時に表示する任意の文字列と変数を同時に表示することもできる。表示したい任意の文字列はそのまま、変数の部分は$に続けて変数名を入力する。重量として単位を含めて表示したいのであれば、次のとおりだ。g変数を複数表示する当然だが、同様に複数の変数を組み入れた表示もできる。price=500例えば、変数の中身を注文内容のメニューと価格を表示したいのであれば、次のとおりだ。Yenメニューと価格が表示された。Yen計算値を表示する計算値を表示することもできる。計算式」で求め、exprを含めた計算式全体をバッククォーテーション「`」で囲む。多くのプログラミング言語と同じく、足し算は「+」、引き算は「-」、割り算は「/」を入力すればよい。掛け算だけは「*」はワイルドカードという意味も持つので、そのままではエラーとなる。掛け算は「\*」と入力する。n=5例えば、変数の中身をメニューと個数と総計金額を表示したいのであれば、次のとおりだ。Yenメニューと個数と単価が掛け合わせた値が計算され表示される。後から詳細をご紹介するが、まずは一覧で見てみよう。-n出力文字の最後の改行をしない-eオプション:改行を表示するオプション-eで改行を表示することもできる。改行したい箇所には「\\n」と入力する。1行目\\n2行目\\n3行目\\n4行目\\nの位置で改行されている。改行の「\\n」は、本来「\n」でよいが、コンピュータが「\n」を「n」としか認識できないので、「\」を一つ多く入力している。"1行目\n2行目\n3行目\n4行目"のように「"」で表示文字全体を囲めば、「\n」でも認識する。今度は\nの位置で改行されている。「\」のような意味を持ち、表面上に見えるものとは違う動作をしている文字は数多くある。括弧やスペース、$などの記号もそうである。これらの文字はメタ文字と呼ばれる。メタ文字で混乱しないためには、表示文字全体を「"」で囲むこと意識しよう。-nオプション:出力文字の最後の改行をしないechoコマンドで出力すると、出力文字の最後に改行しているので、次の行頭にコマンドプロンプトが表示されるが、nオプションでこの改行を出力しないこともできる。出力文字Hello!の次の改行を表示しないようにしてみよう。Hello!Hello!の次の改行が出力されないため、続けてコマンドプロンプトが表示される。Hello!出力を画面ではなくファイルに出力するechoコマンドは初期設定では画面に表示する。画面ではなく、ファイルに出力することもできる。これはechoの機能というよりもリダイレクトと呼ばれるLinuxシェルの機能だ。画面に表示されるものを、別のところに挿入できる。echoコマンドで新規作成したファイルに出力するechoコマンドで文字列をファイルに出力する場合は、>で出力するファイル名を指定する。簡単なスタイルシートを作るのであれば次のように入力すればよい。style.cssファイルstyle.cssが作成され、その内容として、「h1{font-size:20px;}」が書き込まれた。style.cssechoコマンドでファイルに追記するファイルに文字列を追記するのであれば、次のように入力する。先ほどのスタイルシートの2行目に2つ目のスタイルを追記する。style.cssファイルstyle.cssの2行目に、「h2{font-size:16px;}」が追記された。style.cssクォーテーションの解釈のされ方シングルクォーテーション「'」の場合シングルクォーテーションの場合、中はすべて文字列であると解釈される。「pwd」という文字列を$DIR変数に入れたとする。DIR=pwdこれをシングルクォーテーションで囲んで出力すると「$DIR」という文字列が表示される。ダブルクォーテーション「"」の場合ダブルクォーテーションの場合は、変数が展開されて表示される。"$DIR"で「pwd」が表示される。バッククォーテーション「`」の場合バッククォーテーションの場合、引用符内をコマンドであるとみなして、その実行結果と置き換える。`$DIR`で「pwd」コマンドがそのまま実行される。関連コマンド最後にechoコマンドに関連して、基本的な画面表示のコマンドも紹介しておく。unsetセットした変数を削除するにはunsetコマンドを利用する。export環境変数を定義するコマンド。「=」で定義したシェル変数は新しく起動したシェルから利用できないので、環境変数に設定する必要がある。catファイルの中身を標準出力するコマンドその他にも様々な使い方がある。詳細はリンク先のcatコマンドを参照。clear画面をクリアにし、入力をしやすくする。まとめ今回は、echoコマンドを使った画面出力とファイル出力方法を解説した。変数の扱いや改行の表現方法は多くのプログラミング言語の出力にも応用できる内容だ。echoコマンドを使った様々な出力方法は応用範囲が広い。TweetPocketこのページの続きや関連ページは下記から一覧で確認できる。・「プログラマーとして転職をしたい!」という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。エンジニアの入り口に立つために必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報が詰まっています。無料で2,3日中にお手元にお届けします。資料を見てみるSNSでもご購読できます。IT研修専門企業のリナックスアカデミーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。PM計算値を表示することもできる。バッククォーテーションが表示されていない。PMバックスラッシュでダブルクォートをエスケープしないと正しく表示されないのでは。PMご指摘いただきありがとうございます。クォート記号で文字コード表記をしなかった為に本文レイアウトが崩れた部分がありましたので訂正いたしました。引き続き、ご愛読のほど、よろしくお願いいたします。AMいつもご愛読いただきありがとうございます。本記事のコマンド解説の中で意味合いの違う「$」が出てきますので、確かに混乱を招くところがあるかもしれません。実際にCentOS等でコマンド練習を始めようとして頂くとわかりやすいのですが、echoの前にある「$」はコマンドを入力する前から表示されている「今は一般ユーザーの権限でログイン中ですよ」という印です。スーパーユーザー(rootなど)でログイン中の場合には「$」が「#」に変わります。実際にここから入力していただく必要はございません。【コマンドの途中にある「$」について】コマンドの途中で出てくる「$」は「その直後にある文字列を変数として扱う」ための印です。一例として「test」という文字列だけならファイル名やフォルダ名、あるいはコマンド名という可能性もありますが「$test」ならば必ず「testという名前の変数」であることがわかります。{}で囲む必要はありません。AM返信ありがとうございます。ネット上のシェルの解説で、'変数にアクセスするときは「${変数}」のように変数名の前に「$」を付けて変数を「{}」で囲む必要があります。PMいつもご愛読いただきありがとうございます。実はここがコマンド記述の面白い所でもあるのですが、実はどちらでも問題ないのです。{}を使う理由はきちんとあって「どこからどこまでが変数名か分かりやすくなる」のが主な理由です。hensu2=222222まずは変数を2つ用意します。それぞれ中身は数字が6文字分ですね。これを{}無し、有りでそれぞれechoしてみます。${hensu1}111111もちろん、どちらも結果は同じです。${hensu1}から${hensu2}まで111111から222222までこういった表記も出来ます。実行結果は同じですが、上の例ですと「$hensu1から$hensu2まで」のどこからどこまでが変数名か分かりずらいですよね。「$hensu」までが変数で「1から」という部分が文字かもしれません。下の例のように{}で囲めば「$hensu1」までが変数名であることがわかります。AM返信ありがとうございます。以外の点からすればどちらでも正しいということですね。*メールアドレス(公開はされません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け資料を見てみる。