こんにちは!エンジニアの篠原です
今回は、業務でシェルスクリプトを書く機会があり
ここってもっと短く書けないの?と思い調べたところ
様々な構文省略形がありましたのでまとめてみたいと思います!
・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
まとめ
シェルスクリプトは改行を整えて書くほうが可読性が上がる場面も多いですが、
ちょっとしたスクリプトなら、ここで紹介した省略形を使うことで短くまとめられるので使ってみるのもありかもです
以上、篠原でした