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
を利用しながらファイルを生成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/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)実行後

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