我想开始用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和编码的新手。
答案 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"
}
但是也许更好的方法是删除点后的部分:
infilename=$(basename -- "$1") # some temp variable
outfile="$(dirname "$infile")/${infilename##*.}"
有关如何从文件中提取文件名的信息,请参见this post。