Bash脚本运行dotnet命令行应用程序,将'作为cli参数

时间:2019-07-24 20:27:34

标签: bash .net-core

我写了一个.net核心命令行应用程序,我希望能够轻松地从命令行在多个平台上运行它。对于Windows,我编写了一个cmd文件。对于Linux和MacO,我编写了一个bash脚本。

.net核心应用程序编译为DLL。要从命令行运行它们,请输入:

dotnet myApp.dll <my command line args>

我的bash脚本如下:

#!/bin/sh
dotnet ./myApp.dll "$@"
rc=$?
exit $rc

通过外壳程序脚本运行应用程序时,出现以下错误:' is not recognized. 但是,如果我跳过shell脚本,并以dotnet myapp.dll的身份直接运行应用程序,则无论在Windows还是Linux上运行都不会出错。

我认为该错误是由我用于命令行解析的库生成的,但是我怀疑问题可能出在我的bash脚本中。 这是我用于命令行解析的库。 https://github.com/commandlineparser/commandline

如果在脚本顶部添加echo "$@",我会看到命令行参数回显到控制台。

我的bash脚本是否存在错误? 有没有更好的方法来编写此脚本?

可能有多个命令行参数,我想将它们全部传递给我的应用程序,就像我直接使用dotnet cli运行该应用程序一样。

1 个答案:

答案 0 :(得分:1)

尝试将脚本文件更改为unix行结尾\n