「シェルスクリプトの基礎 - コマンドライン引数」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

編集の要約なし
63行目: 63行目:
echoの引数として変数を渡す場合は、"$1"のようにダブルクォートで囲む癖をつける。<br>
echoの引数として変数を渡す場合は、"$1"のようにダブルクォートで囲む癖をつける。<br>
$1のようにそのまま記述すると、値として連続するスペースが含まれていた時に1つのスペースに纏められてしまう。<br>
$1のようにそのまま記述すると、値として連続するスペースが含まれていた時に1つのスペースに纏められてしまう。<br>
<br>
以下に、コマンドライン引数のを使用した応用例を示す。<br>
シェルスクリプトが2つ以上のパラメータを必要としている場合、シェルスクリプトの先頭で以下のように確認する。<br>
<syntaxhighlight lang="sh">
# 例 : 2つ以上のパラメータが必要な場合
#!/bin/bash
if [ $# -lt 2 ]; then
    echo "Usage: $(basename $0) <file1> <file2>" >&2
    exit -1
fi
</syntaxhighlight>
<br>
以下の例に、様々なコマンドライン引数の確認方法を示す。<br>
<syntaxhighlight lang="sh">
# 例 : 1つ以上のコマンドライン引数が必要な場合
#!/bin/bash
if [ ! "$1" ]; then
    echo "Usage: $(basename $1) <file>" >&2
    exit -1
fi
</syntaxhighlight>
<br>
<syntaxhighlight lang="sh">
# 例 : 1つ以上の引数が必要かつ特定のファイルが存在する場合
#!/bin/bash
# 引数の確認
if [ ! "$1" ]; then
    echo "Usage: $(basename $0) <file>" >&2
    exit -1
fi
# ファイルの存在の確認
if [ ! -f "$1" ]; then
    echo "$1 is not found" >&2
    exit -1
fi
</syntaxhighlight>
<br><br>
<br><br>