Azure Batch 服务:通过命令行将参数传递到 Linux/Ubuntu 上的应用程序包
Azure Batch Service: Passing Arguments via Command Line into Application Package on Linux/Ubuntu
鉴于以下 C#/.NET 控制台应用程序 运行ning 在我的 Azure Batch Pool/Task 上:
class Program
{
static async Task Main(string[] args)
{
try
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
}
catch
{
Console.WriteLine($"Could not parse arguments");
}
}
}
在 Linux/Ubuntu VM 中向我的任务添加命令行时如何传递参数。我尝试了以下但没有成功:
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -args 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -args 'arg1', 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program 'arg1', 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -i 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -i 'arg1', 'arg2'
我可以 运行 应用程序,但没有传入参数,我只能得到 “无法解析参数” 输出...
在此抛出所有可能的变体之后(并查看 this example),看起来您必须以某种方式将包名称的字符串值与环境变量的 args 连接起来,以确保参数传递给命令。
这是我最终做到的
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0"/Program 'arg1' 'arg2'"
希望这对正在寻找它的人有所帮助!
鉴于以下 C#/.NET 控制台应用程序 运行ning 在我的 Azure Batch Pool/Task 上:
class Program
{
static async Task Main(string[] args)
{
try
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
}
catch
{
Console.WriteLine($"Could not parse arguments");
}
}
}
在 Linux/Ubuntu VM 中向我的任务添加命令行时如何传递参数。我尝试了以下但没有成功:
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -args 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -args 'arg1', 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program 'arg1', 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -i 'arg1' 'arg2'
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0/Program -i 'arg1', 'arg2'
我可以 运行 应用程序,但没有传入参数,我只能得到 “无法解析参数” 输出...
在此抛出所有可能的变体之后(并查看 this example),看起来您必须以某种方式将包名称的字符串值与环境变量的 args 连接起来,以确保参数传递给命令。
这是我最终做到的
/bin/sh -c $AZ_BATCH_APP_PACKAGE_Program_1_0"/Program 'arg1' 'arg2'"
希望这对正在寻找它的人有所帮助!