Programming」カテゴリーアーカイブ

プログラミング全般に関するカテゴリーです。

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

bash(sh)でcase文を書くときの基本は次のような感じです。

case $変数 in
  パターン1)
    実行したい内容1
    ;;
  パターン2)
    実行したい内容2
    ;;
esac

ということで、case文でよく使われるパターンを2つほど紹介してみようと思います。

曜日ごとに異なる内容を実行したい場合(cronで便利です)

case `date +%a` in
  'Sun')
    日曜日に実行したい内容
    ;;
  'Mon')
    月曜日に実行したい内容
    ;;
  'Tue')
    火曜日に実行したい内容
    ;;
  'Wed')
    水曜日に実行したい内容
    ;;
  'Thu')
    木曜日に実行したい内容
    ;;
  'Fri')
    金曜日に実行したい内容
    ;;
  'Sat')
    土曜日に実行したい内容
    ;;
esac

ランダムで何か実行したい場合

case `expr $RANDOM % 3` in
  0)
    3分の1の確率で実行したい内容
    ;;
  1)
    3分の1の確率で実行したい内容
    ;;
  2)
    3分の1の確率で実行したい内容
    ;;
esac

C#のcharを大文字・小文字に変換する方法

C#のstringを大文字・小文字に変換したい場合はToLower/ToUpperが使えます。

string s;

// 小文字に変換
s.ToLower();

// 大文字に変換
s.ToUpper();

そこで、charを大文字・小文字に変換したい場合に何か簡単な方法がないか調べてみたところChar.ToLower/Char.ToUpperというのが便利みたいです。

使い方

// 小文字に変換
Char.ToLower('A');

// 大文字に変換
Char.ToLower('a');

お手軽にcharの大文字↔小文字を変換したい人は試してみてください。

リンク

Char.ToLower Method (System) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.char.tolower?view=netframework-4.8

Enumをforeachでループしたい場合

C#でEnumの各項目をforeachでループしたい場合、Enum.GetValuesを使うと簡単にできるみたいです。

使い方

using System;

public class Example
{
  enum Name { "aaa", "bbb", "ccc" };

  public static void Main()
  {
    foreach (int i in Enum.GetValues(typeof(Name)))
    {
      Console.WriteLine(i);
    }
  }
}

実行結果

aaa
bbb
ccc

リンク

Enum.GetValues(Type) Method (System) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?view=netframework-4.8