Bash 基本コマンド

MacやLinuxのバッチを作る時に重宝するbash。
よく使うものをまとめておく。

比較

構文

if [ 条件 ];
then
  実行内容
elif [ 条件 ];
then
  実行内容
else
  実行内容
fi

if の後ろと、 [] の内側に1つずつ半角スペースが必要な点に注意。

比較演算子(文字)

文字列を比較する場合、 = を使用する。

if [ "$1" = "TEST" ];
then
  echo "アップグレードを開始します。"
fi

比較演算子(数値)

数値を比較する場合は、 = ではなく、 '-eq' を使用する。

if [ "$1" = 100 ];
then
  echo "100です。"
fi

文字列の比較で -eq を使用すると、下記エラーが発生する。

[: TEST: integer expression expected

比較時に変数を "" で囲う理由

変数が空の場合、下記エラーが発生するため。

[: =: unary operator expected

変数宣言

構文

変数名=値

TEST_STR="テスト文字列"

定数

readonly を付与する。

readonly TEST_STR="テスト文字列"

echo

echo 文字列

変数の改行コードを改行として出力したい場合

変数は、 "" で囲わないと、変数内の改行コードが出力に反映されない。

echo "$TEST"

文字列結合

多くの言語では文字列結合の際に +. などの演算子で文字列型の変数や値を結合するため、当然のようにbashでも文字列結合を行う際は演算子が必要と思ってしまうのだが、bashの場合は演算子を結合する必要はなく、そのまま並べれば良い。

echo 'Test' 'Script'
# Test Script

echo 'Test''Script'
# TestScript

test=TEST-
echo $test'Script'
# TEST-Script

echo "${test}Script"
# TEST-Script

執筆日:
本記事のタグ