Bash変数とは?基本の仕組みと実践的な使い方を徹底解説
Bashでは、長い文字列をひとつの変数に割り当てることができます。これにより、コマンドの入力やスクリプト作成が格段にシンプルになります。本記事では、Bash変数の仕組みと、実際の活用方法について詳しく解説します。
変数とは何か?
変数とは、さまざまな英数字の値を格納できる「覚えやすい名前」のことです。変数を使う最大のメリットは、同じ関数や処理を異なる値に対して適用できる点にあります。スクリプトやコードを書き直す必要がなくなるため、作業効率が大きく向上します。また、個別の値を扱う代わりに共通の名前を使えるため、コードそのものも読みやすく、書きやすくなります。
リアルタイムで使える一時変数
Bashでは、その場で変数を作成し、現在のセッション中に何度でも再利用できます。こうした変数はBash操作を多方面でサポートしてくれますが、セッションが終了すると自動的に消えるという特徴があります。
例えば、リサーチやデータ収集のために複数のサイトを頻繁に訪れる場面を考えてみましょう。次のような変数を作成できます。
sitea=https://www.maketecheasier.com
この後、Firefoxでそのサイトを開きたいときは、次のコマンドを入力するだけです。
firefox $sitea
URLを毎回手入力するより、はるかに簡単で読みやすくなります。$sitea変数は、内容を手動で変更するか、Bashセッションが終了するまで、サイトへのマッピングを保持し続けます。もちろん、siteb、sitec、sitedなど、複数の変数を作成することも可能です。
新しい変数を定義するときは、任意の名前を使い、任意の英数字の文字列を格納できます。ただし、変数名はデフォルトで大文字・小文字が区別される点に注意してください。つまり、$siteaと$SiteAは別の変数として扱われます。また、スペースを含む特殊文字を文字列に格納する場合は、引用符(クォート)で囲む必要があります。
スクリプト内での変数活用
Bash変数は、スクリプトを書く際にこそ真価を発揮します。ひとつのスクリプトで複数の文字列を順に処理したり、カスタマイズされたデータに対応したりできるからです。例えば、誰のパソコンでも動作し、実行するたびにユーザーごとの挨拶文を表示するスクリプトを作りたいとします。変数がなければ、ユーザーごとにスクリプトの別バージョンを用意する必要があります。しかし変数を使えば、スクリプト本体はそのままに、ユーザー名だけを変更すればよくなります。
そのようなスクリプトは、以下のような形になります。
#!/bin/bash username=Odysseas echo $username
この簡単な例だけを見ると冗長に思えるかもしれません。しかし、コードが複雑になるにつれて、変数は不可欠な存在になります。スクリプトが数百行、数千行に及び、ユーザー名があちこちに登場するケースも珍しくありません。理解を深めるために、少し違うタイプの次のスクリプトを見てみましょう。
#!/bin/bash username=Linus echo Hello $username. This is a simple script I wrote that will repeat your name - that is, $username - often as an actual example of how to use Bash variables. I hope it will make it easier to understand how to use variables to improve your Bash workflow, $username. In this case, the variable username is mapped to your name. Whenever Bash runs into it, it replaces it with $username.
上記のスクリプトでは、username変数として定義された名前を使って文章を完成させています。変数を使わない場合、実際のユーザー名を4回も入力しなければなりません。さらに、次のユーザーのためにまた4回、その次もまた4回と、繰り返すことになります。一方、変数に代入しておけば、ユーザーごとに変更箇所は1回だけで済み、文中のユーザー名への言及はすべて自動的に更新されます。
永続的なBash変数とエイリアスの設定
ここまで、一時的な変数の設定方法と、より恒久的に使いたい場合には自分のスクリプトに組み込む方法を見てきました。では、Bash自体に変数を永続的に設定することはできないのでしょうか?答えはイエスです。しかも編集するファイルはひとつだけ。「~/.bashrc」です。
お好みのテキストエディタで「~/.bashrc」ファイルを開きましょう。ここではnanoを使います。
nano ~/.bashrc
まずはテストとして、変数をひとつだけ追加することをおすすめします。そうすれば、うまく動かなかった場合でも問題箇所を特定しやすくなります。ファイルの末尾に移動し、新しい行に変数を追加します。例えば、自分の名前を格納する変数は次のように設定します。
myname="Odysseas Kourafalos"
ファイルを保存してエディタを終了します。ただし、この変更はすぐには反映されません。ターミナルで以下のコマンドを実行して、設定を有効化してください。
source ~/.bashrc
これで、新しく設定した変数をBashセッション内で使えるようになります。
echo $myname
変数はいくつでも設定でき、日々のBash操作を大幅に効率化できます。
生産性をさらに高めたいなら、もうひとつのタイプの「変数」であるエイリアス(alias)を設定するのもおすすめです。通常の変数がコマンド内で使うデータにマッピングされるのに対し、エイリアスはコマンドそのものの代わりとして使われます。
覚えやすい変数に長い文字列を格納できるのと同じように、エイリアスを使えば複雑なコマンドを簡単な代替コマンドに置き換えられます。詳細については、7zipの長い圧縮コマンドを2文字のエイリアスに変換した事例などを参考にしてみてください。
最後に補足しておくと、.bashrcに永続的に変数を設定していても、前述の方法で一時的に別の値を再代入することが可能です。新しい値は、現在のBashセッションが終了するまで(ログアウトや再起動まで)、あるいは.bashrcファイルを再読み込みするまで保持されます。
-
Windows Sysinternalsとは?概要から使い方まで徹底解説
自分のWindowsパソコンを完全にコントロールできたら素晴らしいと思ったことはありませんか?ほぼすべてのWindowsプロセスやアプリケーションの内部を覗き見できるだけでなく、アプリがアクセスしているファイルやレジストリエントリをリアルタイムで確認できるのは、実に魅力的な機能です。 Sysinternalsは、最も信頼性が高く強力なWindowsシステム管理ツールキットのひとつです。そのほとんどのユーティリティはシンプルなEXEファイルなので、USBフラッシュドライブに入れておけば、持ち運び可能なシステム管理ツールとしていつでも活用できます。 Windows Sysinternalsとは?
-
Windows 11の「推奨アクション」とは?電話発信や予定作成を自動化する便利機能の使い方
Googleなどの検索エンジンでは、検索ワードを入力すると自動的に候補が表示されますよね。実はMicrosoftも、Windows 11ユーザー向けにこれによく似た機能を導入しました。その機能の名前は「推奨アクション(Suggested Actions)」。Windows上での操作をよりシンプルにすることを目指した、Microsoftの最新の取り組みです。この記事では、推奨アクションの使い方と効果的な活用方法について詳しく解説します。Windows 11で推奨アクションを有効にする方法推奨アクション機能を有効にすると、電話の発信やイベント(予定)の登録を自動的に行えるようになります。電話番号や