0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LINUX シェルスクリプト入門

Posted at

はじめに

未来電子テクノロジーでインターンをしているやっきーです。

プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください。

シェルスクリプトとは

シェルスクリプトとは、シェルで実行するコマンドをまとめて記述したものである。シェルの中で、プログラミング言語を記述するという考え方が近い。もちろん、変数を使うこともできるし、キーボードからの入力を反映させることもできる。

出力する

シェル上に文字を出力したいときはechoを用いる。

output.sh
echo "hello"

この場合、helloと返される。

キーボードから入力する

キーボードから文字を入力したい場合、readを用いる。スクリプトの記述を終えると、シェルは入力が可能な状態になる。

input.sh
read x
# エンターキーを押すと、入力が可能な状態に切り替わる。

ループ文

for文に示した範囲を満たしている間、doからdoneまでの動作が行われる。

test.sh
for number in {1..99..2}
do
    echo $number
done

この場合、変数numberを1から99まで変化させる。1周回るたびにnumberを2加算する。
なお、echoの引数に変数を使用するときは$を付ける。

四則演算

2つの入力値から四則演算の結果を返す手順は以下の通り。
算術演算をするときは式を (( )) でくくる。

calculate.sh
read x
read y

echo $(($x + $y)) #和
echo $(($x - $y)) #差
echo $(($x * $y)) #積
echo $(($x / $y)) #商
echo $(($x % $y)) #剰余

それぞれの計算結果が出力される。

数値の比較

3つの入力値x,y,zの大きさを比較する手順は以下の通り。
条件分岐をするときはif文を用いる。ifの後に条件式を書き、thenの後にしたい動作を書く。if文の中が偽の場合にさらに条件式を書きたい場合はelifを用いる。それらの条件式に該当しないものはelseを用いる。
複数の条件式を使用するときは||(or), &&(and)を使い、 [[ ]] でくくる。

compare_num.sh
read x
read y
read z

if [[ $x == $y && $y == $z ]]; then
  echo "EQUILATERAL"
elif [[ $x == $y || $x == $z || $y == $z ]]; then
  echo "ISOSCELES"
else
  echo "SCALENE"
fi

文字列の比較

文字を比較する式は以下の通り。

compare_str1.sh
read x
if [[ $x == Y || $x == y ]]; then
  echo "YES"
else
  echo "NO"
fi

なお、以下のように ||, &&の代わりに-o, -aを使い、 [ ] でくくっても等価である。

compare_str2.sh
read x
if [ $x == Y -o $x == y ]; then
  echo "YES"

else
  echo "NO"
fi

文字列の一部を取得

入力値の一部を利用する場合には以下のように記述する。
readでキーボードの入力を読み込み、変数xに代入する。そして、echoでxの中の一部の文字を出力させることができる。

input2.sh
read x
echo ${x:2:1} #xの3番目の要素(x[2])から1文字出力

この場合の例として、キーボードで world と入力すると3文字目の l が出力される。

参考URL

【初心者でもわかる】Linuxシェルスクリプト入門 まとめました
【Linux入門】if文による条件分岐の方法をわかりやすく解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?