この記事は旧ブログサービスからの移植記事です。
表示がおかしい場合があります、ご了承ください。
bashでpwdを利用すると
/c/hoge/huga
と処理されC#のPathの記法と合いません。
この文字列をC#用に変換するスクリプトを書いたので供養します。
なお筆者はBash始めたての初心者ですので、正確性は担保できません。
環境
- Windows 10
- GNU Bash, version 4.4.19(2)-release (x86_64-pc-msys)
ソースコード
$CS_OUT_DIR
に 変換後のディレクトリパス+出力するファイル名
が入るように記述します。
その後 cat
で CS_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#用に変換され、挿入されている
おわりに
文字列置換の部分でもっときれいな書き方があれば教えてほしいです。