如何使用 bash 脚本将命令行参数输入到 dotnet c# 程序?

How to input command line arguments to a dotnet c# program using bash scripts?

我有一个简单的 c# 程序,它在 运行 时需要命令行输入(来自 Console.ReadLine())。我必须提供很多输入,所以我想知道如何使这个过程自动化。我目前有一个 shell 脚本试图执行此操作,但它不起作用。

#!/bin/sh
dotnet run #run the program
1          #input first argument (this failed so I tried echo 1 instead but no luck)
           # <- rest of command line inputs on each line

不太熟悉 shell 脚本,如果您有其他解决方案,我不会固定在这个解决方案上。我的 OS 是 MacOS.

好的,所以我尝试的是:

  1. 我做了一点mcve-Console应用程序:(dotnet 6)
var input = Console.ReadLine();
while( !string.IsNullOrEmpty(input) )
{
    Console.WriteLine("User input: {0}", input);
    input = Console.ReadLine();
}
  1. 然后我做了一点input.txt
This is a Text.
This is another Text.
1
2
3
This is the final Text.
  1. 最后run.sh如下:
#!/bin/sh
dotnet run < "input.txt"

输出为

User input: This is a Text.
User input: This is another Text.
User input: 1
User input: 2
User input: 3
User input: This is the final Text.

/bin/sh 在我的例子中链接到破折号 shell。


如果在run.sh中你将“input.txt”替换为“$1”,那么你可以用./run.sh whateveryourinputfileis.txt来调用它以使其更加灵活。