シェルスクリプトについてまとめてみた
- #CLI
- #Shell Script
- #Tips
- #Know-how
- 2018/10/06
シェルスクリプトについてまとめてみた
これからシェルを使いそうな雰囲気がプンプンしているため初心者ながらシェルスクリプトを入門してみようと思います。
まずは環境の構築
- CentOS7
- Vagrant
- VirtualBox
上記でシェルを実行する環境を整えます。
- VagrantとVirtualBoxをインストールする。
- こちらよりcentos7を仮想環境として導入するスクリプトを確認する。
- 確認したコマンドを実施して環境を整える。
vagrant init centos/7
vagrant up
vagrant ssh
4.sshでcentosに入れることを確認する。(もしもユーザーやらパスワードを求められたらvagrantと入力する)
実際にシェルスクリプトを書いて実行してみる
- 任意のディレクトリにファイルを作成する。
touch hello.sh
2.スクリプトを書く。
vi ./hello.sh
#!/bin/sh
echo "helloworld"
3.実行する。 実行方法は3種類
- 3-1.
sh hello.shコマンドを実行する。 - 3-2.
bash hello.shコマンドを実行する。 - 3-3. 権限を変更して実行する。
sudo chmod 755 ./hello.sh
./hello.sh
基本的な操作(#!/bin/shは省略します)
- 出力
echo 出力する文字
- 入力を求める
read
- 演算
expr 2 \+ 2
expr 2 \- 2
expr 2 \* 2
expr 2 \/ 2
- 変数に格納
a=1
b=2
- 結果を変数に格納する際にはバッククォートで囲む(スペース必須)
r=`expr $a \+ $b`
- 変数の値を出力
echo $r
- if分岐
if [ $res -eq $zero ]; then
echo "偶数です"
else
echo "奇数です"
fi
# 同値判定は=演算子を使用する(文字列)
if [ "ABC" = "ABC" ]; then
echo "equal"
else
echo "not equal"
fi
※ -epは数値の等価判定
- switch構文
var="red"
case "$var" in
"blue" ) echo "bule" ;;
"green" ) echo "green" ;;
"red" ) echo "red" ;;
esac
- whileループ(-ltは「<」のこと)
int=0
while [ $int -lt 5 ]; do
echo $int
int=`expr $int \+ 1`
done
- untilループ(-gtは「>」のこと)
until [ ! \( $int -gt 0 \) ]; do
echo $int
int=`expr $int \- 1`
done
- forループ
for var in 10 11 12 ; do
echo $var
done
- 関数
MyFunction () {
echo "関数実行"
}
# 実行
MyFunction
- 関数(引数あり)
add () {
echo `expr $1 \+ $2`
}
# 実行
add 1 3
最後に
シェルは避けては通れないものだと思い勉強することにしました。
まだまだ新人のうちに勉強しておくことは多い。。
つまずいた部分はスペースがないと正常に判定されなかったり、うっかりwindowsで書いてしまい改行コードがCRLFになっていたため実行できなかったりの部分です。
Linuxでは改行コードがLFなので注意です!!
Share:
X (Twitter)