Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bash/Linuxの「$@」(コマンドライン引数)とは何か?使い方を徹底解説

この記事では、Bashおよびシェルスクリプトにおける特殊変数「$@」の意味と、その使い方、そしてどのような場面で役立つのかについて詳しく解説します。

$@は、スクリプトに渡されたすべてのコマンドライン引数(パラメータ)の値を保持する特別な変数です。

Bashにおけるコマンドライン引数とは

シェルスクリプトでコマンドライン引数を使用できることは、非常に重要かつ便利な機能です。引数を使うことで、同じスクリプトをさまざまな入力に対して柔軟に動作させることができます。

本記事は、シェル/Bashスクリプトにおけるコマンドライン引数の基礎知識を前提としています。まずは基本的な位置パラメータ($1、$2など)の仕組みを理解しておくと、$@の挙動がより分かりやすくなります。

$@にはスクリプトに渡されたすべての引数が格納される

$@の動作を理解する最も簡単な方法は、実際のサンプルコードを見ることです。

次のサンプルスクリプトは、変数$@の中身をそのまま出力するだけのシンプルなものです。

#!/bin/bash

echo "$@"

このスクリプトにいくつかの引数を付けて実行してみます。

sh test.sh "apple" 0 banana 1

実行すると、次のような出力が得られます。

apple 0 banana 1

この結果から、$@変数がスクリプトに渡されたすべてのパラメータの値を保持していることが分かります。

注意点:引用符は取り除かれる

出力結果を見ると、元のコマンドで付けた引用符(ダブルクォート)が取り除かれていることに気づくでしょう。これは、$@には渡されたテキストそのものではなく、各パラメータのが格納されるためです。

位置0のパラメータは含まれない

$@には、位置1以降のすべての位置パラメータが含まれます。位置0には実行中のスクリプト名が格納されているため、これらは除外されます。

$@を使う際の推奨事項

$@は特殊変数であり、適した使用場面は限られています。一般的には、位置パラメータ($1、$2など)を本来の用途どおりに使うこと(1つの値を1つのパラメータとして渡す)をおすすめします。

大量のデータを$@で一括して読み込み、スクリプト側で自力に解析するような使い方は避けるのが賢明です。可読性や保守性の観点からも、個別の引数として扱う方が安全でバグの少ないスクリプトになります。


  1. Linuxで覚えておきたい10個のコマンド連結演算子と実用例

    Linuxにおける「コマンドの連結(チェーン)」とは、複数のコマンドを1行にまとめ、その間に挟んだ演算子の働きに応じて実行を制御するテクニックです。シェル上で小さなスクリプトを書くのに近い感覚で、ターミナルから直接手軽に実行できます。定型作業の自動化はもちろん、無人で稼働するサーバーをより体系的かつ安定して動作させるうえでも非常に有効です。あわせて読みたい: Awkと正規表現を使ってファイル内のテキストを抽出・フィルタリングする方法本記事では、日常的によく使われるコマンド連結演算子を10個厳選し、簡潔な説明と実際の実行例とともに解説します。これらを使いこなせるようになれば、短くて意味のあるコマ

  2. 知っておくべき便利なLinux Bashコマンドラインショートカット徹底解説

    この記事では、すべてのLinuxユーザーに役立つBashコマンドラインショートカットを多数紹介します。これらのショートカットを覚えておけば、過去に実行したコマンドの呼び出しや再実行、エディタの起動、コマンドライン上でのテキストの編集・削除・変換、カーソル移動、プロセス制御などを、素早く効率的に行えるようになります。 本記事は、コマンドラインの基本を学び始めたばかりのLinux初心者にとって特に有益ですが、中級者や上級者の方にとっても、意外と知られていない実用的なヒントが見つかるはずです。以下では、Bashのキーボードショートカットをカテゴリ別に分けて解説していきます。 エディタを起動する ター