标签: command-line-arguments

Bash中"$ @"和"$*"有什么区别?

在我看来,它们都存储了所有命令行参数.

两者之间有区别吗?

variables bash command-line-arguments

65
推荐指数
2
解决办法
3万
查看次数

如何捕获传递给Groovy脚本的参数?

我刚开始使用Groovy.我找不到任何关于如何处理Groovy脚本的参数的例子,所以我自己攻击了这个方法.必须有更好的方法来做到这一点?如果是这样,我正在寻找这种更好的方式,因为我可能忽视了这一点.

import groovy.lang.Binding;
Binding binding = new Binding();
int x = 1
for (a in this.args) {
  println("arg$x: " + a)
  binding.setProperty("arg$x", a);
  x=x+1
}
println binding.getProperty("arg1")
println binding.getProperty("arg2")
println binding.getProperty("arg3")
Run Code Online (Sandbox Code Playgroud)

java groovy command-line-arguments command-line-parsing

65
推荐指数
4
解决办法
8万
查看次数

64
推荐指数
2
解决办法
13万
查看次数

python argh/argparse:如何将列表作为命令行参数传递?

我正在尝试使用argh库将参数列表传递给python脚本.可以采取以下输入的东西:

./my_script.py my-func --argA blah --argB 1 2 3 4
./my_script.py my-func --argA blah --argB 1
./my_script.py my-func --argA blah --argB 
Run Code Online (Sandbox Code Playgroud)

我的内部代码如下所示:

import argh

@argh.arg('--argA', default="bleh", help='My first arg')
@argh.arg('--argB', default=[], help='A list-type arg--except it\'s not!')
def my_func(args):
    "A function that does something"

    print args.argA
    print args.argB

    for b in args.argB:
        print int(b)*int(b)  #Print the square of each number in the list
    print sum([int(b) for b in args.argB])  #Print the sum of the list

p = argh.ArghParser()
p.add_commands([my_func])
p.dispatch()
Run Code Online (Sandbox Code Playgroud)

这是它的行为方式: …

python command-line-arguments argparse argh

64
推荐指数
1
解决办法
5万
查看次数

从spring-boot:run获取命令行参数

从命令行启动spring-boot应用程序(mvn spring-boot:run)然后在main()中获取它们是否有任何方法可以输入参数?

java command-line-arguments maven spring-boot

64
推荐指数
4
解决办法
7万
查看次数

C中主要参数

我不知道该怎么办!我非常了解C基础知识.结构,文件IO,字符串等除了CLA之外的一切.出于某种原因,我无法理解这个概念.任何建议,帮助或建议.PS我是一个linux用户

c main-method command-line-arguments

59
推荐指数
5
解决办法
20万
查看次数

char*envp []是main()可移植的第三个参数

为了在C程序中获取环境变量,可以使用以下内容:

  • getenv()
  • extern char **environ;

但除了上面提到的,使用char *envp[]第三个参数main()来获取环境变量被认为是标准的一部分?

#include <stdio.h>

int main(int argc, char *argv[], char *envp[])
{
    while(*envp)
        printf("%s\n",*envp++);
}
Run Code Online (Sandbox Code Playgroud)

char *envp[]便携式?

c environment-variables command-line-arguments

59
推荐指数
4
解决办法
4万
查看次数

使用脚本中的参数调用第二个脚本

我对PowerShell比较陌生,并且有一个脚本可以读取一个配置文件,该文件会产生一组名称值对,我希望将它们作为参数传递给第二个PowerShell脚本中的函数.

我不知道在设计时将在此配置文件中放置哪些参数,所以就在我需要调用第二个PowerShell脚本时,我基本上只有一个变量具有第二个脚本的路径,第二个脚本变量,它是要传递给路径变量中标识的脚本的参数数组.

因此,包含第二个脚本($ scriptPath)路径的变量可能具有如下值:

"c:\the\path\to\the\second\script.ps1"
Run Code Online (Sandbox Code Playgroud)

包含参数($ argumentList)的变量可能类似于:

-ConfigFilename "doohickey.txt" -RootDirectory "c:\some\kind\of\path" -Max 11
Run Code Online (Sandbox Code Playgroud)

如何从这种状态到使用$ argumentList中的所有参数执行script.ps1?

我希望来自第二个脚本的任何write-host命令对于调用此第一个脚本的控制台是可见的.

我尝试过dot-sourcing,Invoke-Command,Invoke-Expression和Start-Job,但我还没有找到一种不会产生错误的方法.

例如,我认为最简单的第一条路线是尝试按如下方式调用Start-Job:

Start-Job -FilePath $scriptPath -ArgumentList $argumentList
Run Code Online (Sandbox Code Playgroud)

...但是由于此错误而失败:

System.Management.Automation.ValidationMetadataException:
Attribute cannot be added because it would cause the variable
ConfigFilename with value -ConfigFilename to become invalid.
Run Code Online (Sandbox Code Playgroud)

...在这种情况下,"ConfigFilename"是第二个脚本定义的参数列表中的第一个参数,我的调用显然试图将其值设置为"-ConfigFilename",这显然是为了按名称标识参数,没有设定它的价值.

我错过了什么?

编辑:

好的,这是一个名为invokee.ps1的文件中的待调用脚本的模型

Param(
[parameter(Mandatory=$true)]
[alias("rc")]
[string]
[ValidateScript( {Test-Path $_ -PathType Leaf} )]
$ConfigurationFilename,
[alias("e")]
[switch]
$Evaluate,
[array]
[Parameter(ValueFromRemainingArguments=$true)]
$remaining)

function sayHelloWorld()
{
    Write-Host "Hello, everybody, the config file is <$ConfigurationFilename>."
    if ($ExitOnErrors)
    {
        Write-Host "I should …
Run Code Online (Sandbox Code Playgroud)

powershell parameter-passing command-line-arguments invoke-command start-job

57
推荐指数
5
解决办法
16万
查看次数

如何将命令行参数转换为int?

我需要得到一个参数并将其转换为int.到目前为止,这是我的代码:

#include <iostream>


using namespace std;
int main(int argc,int argvx[]) {
    int i=1;
    int answer = 23;
    int temp;

    // decode arguments
    if(argc < 2) {
        printf("You must provide at least one argument\n");
        exit(0);
    }

    // Convert it to an int here

}
Run Code Online (Sandbox Code Playgroud)

c++ argument-passing command-line-arguments

54
推荐指数
3
解决办法
11万
查看次数

带有多个参数的xargs

我有一个源输入,input.txt

a.txt
b.txt
c.txt
Run Code Online (Sandbox Code Playgroud)

我想将这些输入提供给程序,如下所示:

my-program --file=a.txt --file=b.txt --file=c.txt
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用xargs,但没有运气.

cat input.txt | xargs -i echo "my-program --file"{}
Run Code Online (Sandbox Code Playgroud)

它给

my-program --file=a.txt
my-program --file=b.txt
my-program --file=c.txt
Run Code Online (Sandbox Code Playgroud)

但我想要

my-program --file=a.txt --file=b.txt --file=c.txt
Run Code Online (Sandbox Code Playgroud)

任何的想法?

linux bash shell xargs command-line-arguments

53
推荐指数
7
解决办法
6万
查看次数