0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シェルスクリプトの構文省略形をまとめてみた

Posted at

こんにちは!エンジニアの篠原です:penguin:
今回は、業務でシェルスクリプトを書く機会があり
ここってもっと短く書けないの?と思い調べたところ
様々な構文省略形がありましたのでまとめてみたいと思います!

・if文

if文は、&&|| を使って省略することができます。

&& を使ったtrueパターン
# 通常の構文
if some_command; then
  echo "成功!"
fi

# 省略文
some_command && echo "成功!"
|| を使ったfalseパターン
# 通常の構文(失敗時の処理のみ)
if ! some_command; then
  echo "失敗"
fi

# 省略文
some_command || echo "失敗"
&& と || を組合せたパターン
# 通常の構文
if some_command; then
  echo "成功!"
else
  echo "失敗"
fi

# 省略文
some_command && echo "成功!" || echo "失敗"

また短い条件文であれば以下のように書くことができます。

# 通常の構文
if [[ -z "$text" ]]; then
  echo "空です"
fi

# 省略文
[[ -z "$text" ]] && echo "空です"

・for 文とwhile 文

シェルスクリプトでは改行の代わりに ; を使うことでまとめることができる為、
for 文やwhile 文はこちらを使って短くできます。
ですが、可読性が下がってしまっては意味がないので
簡単なループのときだけ使うのがいいかもしれません。

for 文
# 通常の構文
for f in *.txt
do
  echo "Processing $f"
done

# 省略文
for f in *.txt; do echo "Processing $f"; done

while 文
# 通常の構文
while read -r line
do
  echo "Line: $line"
done

# 省略文
while read -r line; do echo "Line: $line"; done

まとめ

シェルスクリプトは改行を整えて書くほうが可読性が上がる場面も多いですが、
ちょっとしたスクリプトなら、ここで紹介した省略形を使うことで短くまとめられるので使ってみるのもありかもです:thumbsup:
以上、篠原でした:penguin:

0
0
3

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?