Shellスクリプトでif文の使い方メモ

個人的によく使うif文の書き方をメモです。

使い方

if [ 条件 ]
then
  # 実行したいコマンド
elif [ 条件 ]
then
  # 実行したいコマンド
else
  # 実行したいコマンド
fi

elifが不要な場合はelifからの3行、elseが不要な場合はelseからの2行を削除してください。thenをよく忘れるので気をつけてください。

サンプル1

Shellスクリプトのコマンドラインオプション(数字)によって実行する内容を変えるサンプル。

$ cat example1.sh
#!/bin/sh
if [ "$1" -eq 10 ]
then
  echo aaa
else
  echo bbb
fi
$ ./example1.sh 10
aaa
$ ./example1.sh 20
bbb

-eq(equal)の他にも-ge(greater than or equal)-gt(greater than)-le(less than or equal)-lt(less than)-ne(not equal)なども使えます。

サンプル2

shellスクリプトのシンボリックリンクを作成して、ファイル名によって実行する内容を変えるサンプル。

$ cat example2.sh
#!/bin/sh
if [ `basename $0` = "exampleA.sh" ]
then
  echo AAA
else
  echo 222
fi
$ ln -s example2.sh exampleA.sh
$ ./example2.sh
222
$ ./exampleA.sh
AAA

Post-processing Stackでエラー

Unity 2018.3に更新したら使っていた「Post-processing Stack」でエラーになっていたようです。

Assets\PostProcessing\Editor\PropertyDrawers\MinDrawer.cs(6,34):
error CS0104: 'MinAttribute' is an ambiguous reference between 'UnityEngine.PostProcessing.MinAttribute' and 'UnityEngine.MinAttribute'

詳しくは調べていませんが、GitHubにあるPost-processing Stack v2に置き換えてみたらとりあえずエラーは解消されるみたいです。

GitHub – Unity-Technologies/PostProcessing: Post Processing Stack
https://github.com/Unity-Technologies/PostProcessing

リンク

Post Processing Stack error. – Unity Forum
https://forum.unity.com/threads/post-processing-stack-error.554926/

PC関連でよく使われるディスプレイの解像度一覧

UIの調整に役立つかもしれないディスプレイの解像度一覧

1024×768XGA4:3
1280×720HD16:9
1280×1024SXGA5:4
1366×768ほぼ16:9
1680×1050WSXGA+16:10
1920×1080FHD (Full HD)16:9
1920×1200WUXGA16:10
2560×1440WQHD (Wide Quad HD)16:9
3840×21604K

リンク

Graphics display resolution – Wikipedia
https://en.wikipedia.org/wiki/Graphics_display_resolution