LinuxProgram学習

ShellScriptの基本(変数/配列/if/forなど)

Linux

AWS上でInfrastructure as Codeをやっていると、やたらとShell Scriptを使うことがあります。 Cloud FormationでUserDataでセットアップするときが多いです。

やはり、何も追加でインストールしなくても利用できるというのは相当なメリットがありますので、複雑なものでなければシェルスクリプトを利用しています。

ただ、結構ShellScriptはクセが強いので、記載方法などをミスることが多いです。 自分用のメモとなります。

1.1. 宣言の記載方法

1.1.1. 通常

#!/bin/sh

1.1.2. デバック(-x -v -i)

  • 実行直前のコマンド行を表示し、変更値を表示する
#!/bin/sh -x
  • 実行するコマンド行を表示する(-v -i)
#!/bin/sh -vi

1.1.3. シェルスクリプトを実行せずに構文チェックのみする(-n)

  • 実行する際につけるオプション
/bin/sh -n sample.sh

1.2. シェルスクリプトの変数

  • 変数への値の設定
変数名=値
user=testuser
  • 表示する方法
echo ${user}
testuser

1.3. シェルスクリプトの配列

1.3.1. 配列に値を設定する

  • 一度に値を入れる方法
配列名=(値1 値2 値3)
array=("aaa" "bbb" "ccc")
  • 表示する方法
echo $array

// すべての内容を表示
echo ${array[@]}
aaa bbb ccc

1.3.2. 配列に値を設定する(後で追加する)

  • 配列を1行で記載できるけど見づらい場合にも利用します
array=("aaa" "bbb" "ccc")
array+=("ddd")

echo ${array[@]}
aaa bbb ccc ddd
  • 注意) array+="ddd"のようにカッコがない場合には先頭文字列と結合されるのでちゅい(今回の場合はaaadddになります)

1.4. シェルスクリプトのif文

  • 鍵カッコの後の空白とかをミスりやすいので注意

1.4.1. 変数が文字列と一致しているかどうか

if [ ${status_code} != "200" ] ; then
    echo "status code is not 200 = [$status_code]"
    exit 0
  fi
  echo "status code is 200 = [$status_code]"

1.4.2. 変数が存在するかどうか

if [ -z ${status_code} ] ; then
  echo "can't get status_code"
  exit 0
fi

1.4.3. ファイルのサイズが一致しているかどうか

size01=$(wc -c <file> | awk '{print $1}')
size02=$(wc -c <file> | awk '{print $1}')
if [ ${size01} -eq ${size02} ] ; then
    echo "match file size !!  ${size01} : ${size02}"
    exit 0
fi

1.5. シェルスクリプトのfor文

  • 使いかた
for 変数 in 値リスト
do
  処理
done

1.5.1. 配列をforで回してみる

array=("aaa" "bbb" "ccc")
for v in ${array[@]}
do
  echo ${v}
done

1.6. その他

1.6.1. timestampの取得

timestamp=$(date "+%s") 

Pythonのオススメ勉強方法

私がオススメするPythonの効果的な学習方法は「Udemy(ユーデミー)」によるビデオ学習です。

「Udemy」は、オンライン学習の提供サイトです。学びたい人は多くある講座の中から受講したいコースを選択することができ、動画で学べるのが特徴です。

多くあるPythonのコースの中でもオススメするPythonのコースは以下となります!!

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

このコースでは合計で28.5時間のビデオ講座があって、それらを受講するだけで、Pythonの基礎から応用まで学ぶことができます。

私も購入して受講していますが、内容としては初心者の方から上級者まで対応する幅広い内容になっています。

下手な書籍を何冊か購入するより、この動画コースを最初からじっくりと受けることで総合的なスキルを習得することができるできます。おそらくこれ以上の教材はないと思いますので、絶対おすすめです。

ちなみに、Udemyでは頻繁にセール(1か月に2,3回程度)が開催されているので、セールのタイミングで購入すれば90%OFFになる講座もあるため、セールが開催されてからの購入をオススメします!

今回は以上となります。

コメント

タイトルとURLをコピーしました