非エンジニアのエンジニア道

非エンジニアからエンジニアに転向!その勉強の軌跡を載せていきます。

シェルスクリプト(Bash)

shでやってたので、bashについて書く。
おそらく違う部分をメインで

1行目

#!/bin/bash

変数

declare -i a
a=1
echo $a
unset a

変数は基本的に文字列として扱われる
数値とする場合、declareで指定する必要がある
変数の開放はunset

変数宣言

declareを使って、明確に宣言できる

オプション
a 配列
f 変数を関数として扱う
F 関数定義の表示を抑制し,関数名と属性のみを表示する.-Fを指定すると-fも指定したことになる
i 整数。算術式を評価するようになる
r 読み込み専用変数。値の代入、unsetできない
x エクスポート
p 属性と値を表示

二重括弧による計算

a=10
b=2

c=$(($a + $b))
echo "a + b = $c"

c=$(($a - $b))
echo "a - b = $c"

c=$(($a * $b))
echo "a * b = $c"

c=$(($a / $b))
echo "a / b = $c"

配列

array[0]=1
echo ${array[0]}
echo $array

0番目の要素に限り、ブラケットとインデックスが不要
変数の開放はunset


array=(1 2 3 4 5)
echo ${array[*]}

echo ${#array[@]}

まとめて代入、表示できる。
#を頭につけて@で個数を表示する

for

for(( i=1; i <=10; i++ )){
    ((sum+=i))
}
echo $sum

いつものfor文が使える。