#author("2024-11-18T15:20:51+09:00","default:k1rou","k1rou")
#author("2024-11-18T15:23:24+09:00","default:k1rou","k1rou")
*シェルスクリプト(bash) [#u3889a99]


**定義 [#y6fe32f1]
-スクリプトファイルの先頭行に書く宣言(シェバング)
--#!/bin/bash

**変数 [#qa4a56a8]


***配列 [#h67f3206]
-配列に値をセット
 ARRAY=(1 2 3)
 ARRAY+=(4)
-配列の値を取得
--先頭の要素の値を取得
 ${ARRAY}
--要素の位置を指定して値を取得
 ${ARRAY[0]}
--要素数を取得
 ${#ARRAY[@]}
-サンプル
 ARRAY=(1 2 3)
 ARRAY+=(4)
 for ((i=0; i<${#ARRAY[@]}; i++))
 do
     echo ${ARRAY[$i]}
 done

**シェル関数 [#jd0237ef]
-関数を定義
 <function-name>() {
    echo $1
 }
-関数を呼び出し
 <function-name>
 <function-name> a b c ※引数あり

***引数 [#c98e0589]
-引数の値を取得
 $1
-引数の数を取得
 $#

***戻り値(終了ステータス) [#a3dfd215]
-戻り値の値
--0:真
--0以外の数値:偽

-シェル関数の終了
--真(正常終了)
 return
 return 1
 return 0
--偽(異常終了)
 return 1 ※0以外の数値を指定する

-(シェル関数の呼び出し元で)戻り値を取得
 $?

**途中でコマンドを実行する [#ed54632b]
-`<command>` ※バッククオートで囲む
-$(<command>)

**条件分岐 [#c348d737]
-if
 if [ 条件式 ]; then
    <command>
 elif [ 条件式 ]; then
    <command>
 else
    <command>
 fi
 
 if test 条件式; then
    <command>
 fi

-case
 case <変数> in
    <value1> )
      <command>
      ;;
    <value2> )
      <command>
      ;;
    * )
      <command>
      ;;
 esac


**ループ [#da33d793]
-while
 while [ <条件式> ]
 do
    <comand>
 done
--CSVファイルを読み込む
 CSVFILE="./sample.csv"
 while IFS=, read col_a col_b col_c;
 do
     a_arr+=($col_a)
     b_arr+=($col_b)
     c_arr+=($col_c)
 done < $CSVFILE
 ※環境変数IFSは内部フィールド区切り文字(Internal Field Separator)

-until
 until [ <条件式> ]
 do
    <command>
 done

-for
 for str in 1 2 3
 for str in `seq 0 10`
 for str in {0..10}
 do
    <command>
 done

**演算子 [#if8c532c]
***制御演算子 [#l4c6640e]
-And (&&)
 <command1> && <command2>
 ※左辺の実行結果が真(0)の場合、右辺を実行する
-Or (||)
 <command1> || <command2>
 ※左辺の実行結果が偽(0以外)の場合、右辺を実行する

***論理演算子 [#o4b51b8c]
-And (-a)
-Or (-o)

***数値比較演算子 [#vf87568f]
-等しい(-eq) ※=
-等しくない(-ne) ※!=
-より小さい(-lt) ※<
-以下(le) ※<=
-より大きい(gt) ※>
-以上(ge) ※>=


**テキストファイルの読み込み [#r9367666]
-read

*参照 [#f51c4bc6]
-[[bash]]
-[[Linuxコマンド]]
-[[シェルスクリプト]]
-[[シェル]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS