制作bash C#编译器?

时间:2018-11-11 08:47:41

标签: bash

我想开始用c#进行开发,但是我使用Linux和VSCode进行开发,由于某些无法找到答案的错误,VSCode无法运行代码,因此我借助此链接决定了(Run C# code on linux terminal)来制作执行这部分代码的bash脚本:

mcs -out:hello.exe hello.cs
mono hello.exe

到目前为止,我是这样的:

#Trial
function cs_compiler(){
mcs -out:$2 $1
mono $2
}

它确实可以工作,但是我想让它自动以$ 1(第一个参数)命名$ 2(第二个参数),因此我不必写$ 2的值而只写$ 1可以创建一个exe文件,相同的名称,然后用mono运行该exe。我想要的第二件事是检查cs文件的exe形式是否已经存在,如果存在,只需运行它(单声道)而不进行mcs-out。

对于给您带来的不便,我们深感抱歉,我是Stackoverflow和编码的新手。

1 个答案:

答案 0 :(得分:0)

来自man basename

Strip directory and suffix from filenames

遗憾的是,使用后缀必须事先知道。所以:

cs_compiler() {
    local infile outfile
    infile="$1"
    outfile="$(dirname "$1")/$(basename "$1" .cs)"
    mcs -out:"$outfile" "$infile"
    mono "$oufile"
}
  1. 引用变量。
  2. 缩进您的代码

但是也许更好的方法是删除点后的部分:

infilename=$(basename -- "$1") # some temp variable
outfile="$(dirname "$infile")/${infilename##*.}"

有关如何从文件中提取文件名的信息,请参见this post