#02 行・コメント・変数

複数のコマンドを記述する

Vimで「root.sh」というファイル名を作成、以下を記述。

#!/bin/bash

echo "root"
cd /
ls -l

「root」を表示し、「cd」でルートディレクトリに移動し、「ls」でファイル一覧を表示させる。
「:wq」で保存して閉じる。

実行権限を付与。

$ chmod +x root.sh

実行する。

$ root.sh

以下のように表示される。

root
合計 32
lrwxrwxrwx.   1 root root    7  5月 19 21:23 bin -> usr/bin
dr-xr-xr-x.   4 root root 4096  7月 12 15:39 boot
drwxr-xr-x   20 root root 3240  7月 12 15:39 dev
drwxr-xr-x.  83 root root 8192  7月 12 15:39 etc
drwxr-xr-x.   4 root root   45  6月 23 07:16 home
(以下略)

複数のコマンドをまとめて記述する

複数のコマンドを「;」で区切ることで1行にすることも可能。
「root.sh」を以下のように編集。

#!/bin/bash

echo "root";cd /;ls -l

コマンドを複数行に分ける

行末に「\」を記述することで次の行と連結される。
「root.sh」の一部を以下のように記述することもできる。

#!/bin/bash

echo \
"root"
cd /
ls -l

実行すると上記と同様の結果となる。

コマンドラインが長くなってしまった際に、この機能を利用することで可読性が上がる。

コメントの書き方

行頭に「#」を記述すると、その行はコメントとなる。
以下のようにコメントを残すことができる。

#!/bin/bash

echo \
"root"
# ルートディレクトリに移動
cd /
# ファイル一覧を表示
ls -l

変数

シェル変数では、「変数名=値」の形式で変数に値を指定することができる。
変数の値を参照するには、変数名の前に「$」をつけることでシェルスクリプト内で変数が値に置き換えられて、実行される。

Vimで「var.sh」というファイル名を作成、以下を記述。

#!/bin/bash

message=hello!
echo $message

実行すると以下のように表示される。

$ var.sh
hello!

変数の書き方の注意点

「=」の前後にスペースは不要

ダメな例

message = hello!

代入する際には「$」は不要

ダメな例

$message=hello!

変数名に利用できる文字はアルファベット、数値、アンダースコアのみ

ダメな例

message-test = hello!

変数名の区切りを明らかにする

ダメな例

#!/bin/bash

message=hello!
echo $messageeveryone

これは$messageeveryoneが変数だと解釈され、変数が存在しないということになる。
変数名を「{}」で囲み、変数と明示することで解決できる。

#!/bin/bash

message=hello!
echo ${message}everyone

シェルスクリプト の一覧