bashのスクリプトでif節やelif節を空にするとエラー

bashのスクリプトでifを使う時、thenfi間に何のコマンドも含んでいないスクリプトはエラーになってしまいます。

if [ $value = "abc" ]
then
  # 何もしない
fi

エラーの内容

bash: syntax error near unexpected token `fi'

何もしない分岐は削除すればいいだけですが、elif節やelse節での条件を簡略化したい場合など、何もしない分岐を作りたくなることもあるかなと思います。

そんな時はコロン:というBUILTIN COMMANDを使うと良いみたいです。

次のような感じで使います。

if [ $value = "abc" ]
then
  :
fi

elif節やelse節でも同様です。
困っている方は試してみてください。

viで文字列を検索する方法

検索コマンド

viで文字列を検索したい場合は

:/パターン

もしくは

:?パターン

というコマンドで検索できます。

/?の違いはカーソル位置から下方向に検索するか上方向に検索するかです。
次の候補までジャンプしたい場合はn、1つ前の候補に戻りたい場合はNで移動できます。

正規表現で検索

正規表現での検索もできます。

:/:?に続けて検索したいパターンを入力するところは同じですが、()|などの記号を使う場合は\に続けて入力するところに注意してください。

:/\(パターン1\)\|\(パターン2\)

\でエスケープしたくない場合は\vを使う方法もあります。

:/\v(パターン1)|(パターン2)

大文字小文字を無視

検索で大文字小文字を無視したい場合は

:set ignorecase

で設定できます。

Coroutine内で処理を中止する方法(Unity)

UnityのCoroutineは次のような感じで使います。

void Start()
{
  StartCoroutine(Example());
}

IEnumerator Example()
{
  // 処理したい内容1

  yield return null;

  // 処理したい内容2

  yield return null;

  // 処理したい内容3
}

何かエラーがあった場合などCoroutineを抜けたい場合はyield breakを使って次のような感じで実装できるみたいです。

IEnumerator Example()
{
  // 処理したい内容1
  if (error) yield break;

  yield return null;

  // 処理したい内容2
  if (error) yield break;

  yield return null;

  // 処理したい内容3
}

Coroutine内では普通のreturnでは終了できないので、代わりにyield breakを使うみたいです。

リンク

Exiting a coroutine – Unity Forum
https://forum.unity.com/threads/exiting-a-coroutine.113897/