【Shell】シェル ~ 基本編・構文全般 ~

■ はじめに

シェルスクリプトの基本的な構文・文法を纏める。

目次

【0】注意事項
【1】「#!/bin/sh」「#!/bin/bash」
【2】変数 / 定数 
【3】配列
【4】連結
【5】囲い文字
【6】標準出力
【7】条件分岐
【8】ループ
【9】引数

 【0】注意事項

 * Linuxで実行、Windowsでシェルを作成する際には、
    シェルの改行コードを気を付ける
 => エラーで正常に動かなくなった

【1】「#!/bin/sh」「#!/bin/bash

http://sechiro.hatenablog.com/entry/20120806/1344267619

が分かりやすい。以下の違いがある。
# 設定 エラー後の動作
1 #!/bin/sh 実行しない(エラー即中断)
2 #!/bin/bash 実行する(エラー後も実行)

【2】変数 / 定数

* 大文字・小文字を区別 

サンプル

# 変数「name」に "Mike" を設定
name=Mike

# 変数を参照する際には、$[変数名]
$name

【3】配列

* 以下の関連記事を参照のこと。

シェル ~ 基本編 / 配列 ~
https://dk521123.hatenablog.com/entry/2021/08/11/000000

【4】連結

VALUE1=Hello
VALUE2="$VALUE1, World!"

 サンプル

# コメント
name=Mike
echo "Hello World, $name"

 【5】囲い文字

# 記号 読み方 説明 備考
1 ' シングルクォート 囲った中身を文字列として出力  
2 " ダブルクォート 囲った変数の中身を文字列として出力 echo '$value' => そのまま「$value」と出力
3 ` バッククォート 囲った変数の中身をコマンドとして処理し、その結果を出力

参考文献
https://nj-clucker.com/single-double-back-quote-on-shell-script/

 【6】標準出力

# echo を使用
echo "Hello World!"

サンプル

currentPath=$(cd $(dirname $0);pwd)
fullPath="${currentPath}/openssl.cnf"

echo "Path ${fullPath}"

【7】条件分岐

詳細は以下の関連記事を参照のこと。 

https://dk521123.hatenablog.com/entry/2015/05/01/000043

【8】ループ

詳細は以下の関連記事を参照のこと。 

https://dk521123.hatenablog.com/entry/2021/08/09/000000

【9】引数

* 以下の関連記事を参照のこと。

シェル ~ 引数あれこれ ~
https://dk521123.hatenablog.com/entry/2021/07/11/000421

関連記事

シェル ~入門編~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
シェル ~ 基本編・条件分岐 ~ if / case ~
https://dk521123.hatenablog.com/entry/2015/05/01/000043
シェル ~ 基本編・ループ while / for etc ~
https://dk521123.hatenablog.com/entry/2021/08/09/000000
シェル ~ 関数 ~
https://dk521123.hatenablog.com/entry/2015/03/17/233124
シェル ~ 基本編 / 配列 ~
https://dk521123.hatenablog.com/entry/2021/08/11/000000
シェル ~ 引数あれこれ ~
https://dk521123.hatenablog.com/entry/2021/07/11/000421
シェルスクリプトあれこれ
https://dk521123.hatenablog.com/entry/2018/03/03/210642
シェル ~ 非同期 ~
https://dk521123.hatenablog.com/entry/2023/06/01/000000