Skip to content

BashでC#用のPath文字列を生成する

Posted on:2021年3月13日 at 00:00
この記事は旧ブログサービスからの移植記事です。
表示がおかしい場合があります、ご了承ください。

bashでpwdを利用すると

/c/hoge/huga

と処理されC#のPathの記法と合いません。

この文字列をC#用に変換するスクリプトを書いたので供養します。

なお筆者はBash始めたての初心者ですので、正確性は担保できません。

環境

ソースコード

$CS_OUT_DIR変換後のディレクトリパス+出力するファイル名 が入るように記述します。

その後 catCS_OUT_DIR を利用しながらファイルを生成します。

#!/bin/bash

# 実行時のディレクトリを取得
SCRIPT\_DIR=$(cd $(dirname $0); pwd)

# C#用の変換処理
one=${SCRIPT\_DIR#\*/}
two=${one//\\//\\\\}
CS\_PWD=${two/\\\\/:\\\\}

CS\_OUT\_DIR=${CS\_PWD}\\\\hello.txt

cat <<EOF > hoge.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;

namespace CP
{
    class Atria
    {
        static void Main(string\[\] args)
        {
            using (StreamWriter sw = File.CreateText(@"$CS\_OUT\_DIR"))
            {
                sw.WriteLine("hello");
            }
        }
    }
}
EOF

ソースコード(Bash)実行後

実行時のディレクトリがC#用に変換され、挿入されている

おわりに

文字列置換の部分でもっときれいな書き方があれば教えてほしいです。