如何在保存$@属性的同时将其存储在变量中?
我希望获得完全相同的行为,即使在所有可能的情况下都使用$@或自己的变量。
以下的尝试没有奏效:
args=$@
args2="$@" # the arguments are combined (see the last output paragraph)我使用以下行对它们进行了测试:
s.sh A B=" " Cs.sh
#!/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
import java.util.Arrays;
public class A {
public static void main(String args[]){
System.out.println(args.length + ": " + Arrays.asList(args));
}
}实际输出:
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
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]发布于 2015-05-25 11:11:00
您可以将其存储在数组中:
args=("$@")然后,您可以使用index:"${args[index]}"访问每个参数,并使用"${args[@]}"访问所有参数。
https://stackoverflow.com/questions/30436869
复制相似问题