首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Bash脚本参数$@存储在变量中

将Bash脚本参数$@存储在变量中
EN

Stack Overflow用户
提问于 2015-05-25 11:03:40
回答 2查看 4.6K关注 0票数 6

如何在保存$@属性的同时将其存储在变量中?

我希望获得完全相同的行为,即使在所有可能的情况下都使用$@或自己的变量。

以下的尝试没有奏效:

代码语言:javascript
复制
args=$@
args2="$@"        # the arguments are combined (see the last output paragraph)

我使用以下行对它们进行了测试:

代码语言:javascript
复制
s.sh A B="       " C

s.sh

代码语言:javascript
复制
#!/bin/bash

args=$@
args2="$@"
#args3 = ? - TODO

echo $args
echo $args2
echo $@
#echo $args3   

echo

echo "$args"
echo "$args2"
echo "$@"
#echo "$args3"

echo

java A $args
java A $args2
java A $@
#java A $args3

echo

java A "$args"
java A "$args2"
java A "$@"
#java A "$args3"

A.java

代码语言:javascript
复制
import java.util.Arrays;

public class A {
    public static void main(String args[]){
        System.out.println(args.length + ": " + Arrays.asList(args));
    }
}

实际输出:

代码语言:javascript
复制
A B= C
A B= C
A B= C

A B= C
A B=        C
A B=        C

3: [A, B=, C]
3: [A, B=, C]
3: [A, B=, C]

1: [A B= C]
1: [A B=        C]
3: [A, B=       , C]

预期输出(如果TODO被解决方案替换),并启用echo

代码语言:javascript
复制
A B= C
A B= C
A B= C
A B= C

A B= C
A B=        C
A B=        C
A B=        C

3: [A, B=, C]
3: [A, B=, C]
3: [A, B=, C]
3: [A, B=, C]

1: [A B= C]
1: [A B=        C]
3: [A, B=       , C]
3: [A, B=       , C]
EN

Stack Overflow用户

发布于 2015-05-25 11:11:00

您可以将其存储在数组中:

代码语言:javascript
复制
args=("$@")

然后,您可以使用index:"${args[index]}"访问每个参数,并使用"${args[@]}"访问所有参数。

票数 7
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30436869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档