かなり気分的な技術日記

日々の勉強メモです

【Linux#4】シェルスクリプトで変数への代入時に = の前後にスペースを入れてはいけない

概要

シェルスクリプトで変数への代入時に = の前後にスペースを入れてはいけない。

内容

変数に値を代入するときは、「変数名=値」の形式で書く。
「変数名 = 値」のように=の前後にスペースを入れると、=の前の文字列が変数ではなく、コマンドとして扱われてエラーになる。
hoge.sh

#!/bin/bash

var='hoge'
echo $var

ターミナル

$ ./hoge.sh
hoge

=の前後にスペースを入れた場合
hoge.sh

#!/bin/bash

var = 'hoge'
echo $var

ターミナル

$ ./hoge.sh
./hoge.sh: 行 3: var: コマンドが見つかりません

「varというコマンドに=と'hoge'という引数を与えている」と解釈される。