Shellを全く触ったことがない➡理解するようになるまで
今回調べたこと
● shellの基礎知識
まず最初にShellとは?は調べたら簡単にたくさんの記事がでてきます。
オススメ引用元
● 引数
オススメ引用元
● 絶対パス・相対パス
オススメ引用元
● 配列
オススメ引用元
● 変数
オススメ引用元
● ループ
オススメ引用元
● 配列とループの併用
オススメ引用元
● 連想配列
オススメ引用元
引用先は自分自身が調べていて分かりやすかったものになります。
初心者や未経験の方のお力になればと思って載せました。
基礎理解後
書き始め
#!/bin/bash
【シバン】で検索すると意味が調べられます。
#sh ./test.sh
※必ず sh
をテキストの前につけないとエラーが出る
➡./example.sh
はエディターの現在開いているファイルの事
【絶対パス、相対パスの違い】
./
は省いている部分【相対パス】になります。
コマンド pwd
を実行してみると自分がどこにいるのか分かります。
パスの住所みたいなものです。
shellの引数の作成
sh ./example.sh 〇〇 〇〇〇
【必ずスペースをあけて記述、これで引数になります。※〇の部分に引数を記述してください】
echo "$1"
echo "$2"
これで出力できます。echo
は出力する意味
配列を作成
配列は、【Shell 配列】 などと検索するとたくさん出てきます。
example=(
"hoge"
"fuge"
)
変数と代入を行います。【シェル変数 代入】と検索すればたくさん出てきます!
#日付設定
yyyy-mm-dd="$1"
#2つめの日付設定
yyyy-mm-dd_2="$2"
#時間設定
HH-MM="$3"
すべて引数
で設定しています。
for e in "${example[@}"; do
echo $e
done
出力結果は
hoge
fuge
となります。
今回はaws s3の中身を見てファイルのサイズとトータルが欲しいとします。
オススメ引用元
for e in "${example[@}"; do
aws s3 ls s3://testtest-test2/"$e"/ #日付設定 / #2つめの日付設定 / #時間設定 --recursive --summarize --human-readable
# 日付や時間部分は代入を行っています。
echo $e "$日付設定" "$2つめの日付設定"
# echoは出力するのみなので、順番を入れ替えての出力も可能です。
done
echo 後の$e "$日付設定"
の間はスペースを行っていますが(/や,)
を指定すると
e/日付設定
e,日付設定
と出力されます。
後はtailコマンド
を使用して末尾の2行を抜き出します。
コマンドの詳細に関しましてはたくさんの記事がありますので、調べてみる事をお勧めします。
オススメ引用元
awkコマンド
を使用し抜き出して出力する
オススメ引用元
aws s3を引数に設定していきます。
オススメ引用元
例)
example=`aws s3 ls ${BUCKETDIRNAME} --human-readable | tail -n (抜き出したい行数) | awk '{ print $5 }'`
あとはecho
で出力したい順番に記述
echo "$e" "$example"...
上記のように記述し最後にdone
を書きます。
引用記事も多く読みにくいと思いますが、今回勉強したことをまとめてみました。
実際に記述してどのように動くかを試してみることで勉強になりますので、是非勉強してみてください。初めての経験で自信がつくようになりました。
それでは失礼します。