我有一个简单的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脚本,如果您有另一个解决方案,我不固定在这个解决方案上。我的操作系统是MacOS。
好的,那么我尝试的是:
- 我做了一个小的mcve-Console应用程序:(dotnet 6)
var input = Console.ReadLine();
while( !string.IsNullOrEmpty(input) )
{
Console.WriteLine("User input: {0}", input);
input = Console.ReadLine();
}
- 然后我做了一个小的
input.txt
This is a Text.
This is another Text.
1
2
3
This is the final Text.
- 最后
run.sh
如下:
#!/bin/sh
dotnet run < "input.txt"
输出
用户输入:这是一个文本。用户输入:这是另一个文本。用户输入:1用户输入:2用户输入:3用户输入:这是最终文本。
/bin/sh在我的例子中链接到破折号shell。
如果在run.sh
中替换"input.txt"使用"$1",然后您可以使用./run.sh whateveryourinputfileis.txt
调用它,以使其更灵活。