i have a asp.net core web app on linux ,now, i want to execulate shell command and get result form command , i have no idea , please help me.
我在linux上有一个asp.net核心web应用程序,现在,我想执行shell命令并获取结果表单命令,我不知道,请帮助我。
Is there any way to execute a linux shell command from within an ASP.NET Core application and return the value into a variable?
有没有办法从ASP.NET Core应用程序中执行linux shell命令并将值返回到变量?
1 个解决方案
#1
0
string RunCommand(string command, string args)
{
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = command,
Arguments = args,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
if (string.IsNullOrEmpty(error)) { return output; }
else { return error; }
}
// ...
string rez = RunCommand("date", string.Empty);
I would also add some way to tell if the string returned is an error or just a "normal" output (return Tuple<bool, string>
or throw exception with error
as a message).
我还会添加一些方法来判断返回的字符串是错误还是只是一个“正常”输出(返回Tuple
#1
0
string RunCommand(string command, string args)
{
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = command,
Arguments = args,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
if (string.IsNullOrEmpty(error)) { return output; }
else { return error; }
}
// ...
string rez = RunCommand("date", string.Empty);
I would also add some way to tell if the string returned is an error or just a "normal" output (return Tuple<bool, string>
or throw exception with error
as a message).
我还会添加一些方法来判断返回的字符串是错误还是只是一个“正常”输出(返回Tuple