如何存储命令行参数以供将来使用?

时间:2015-06-16 20:24:37

标签: bash shell

我有一个大的bash脚本(version 3.2.51(1)-release),我需要存储命令行参数以供脚本使用。

我在这里查了很多帖子,人们建议使用" $ @"访问所有参数。

如果我运行此脚本(test.sh) -

#!/bin/bash
echo "$@";

$> ./test.sh 1 2 3
1 2 3

但如果我运行这个

#!/bin/bash
set args1 = "$@";

... do some work here ...

echo $args1;

运行时我没有输出。我在这里错过了什么? 我想存储参数而不修改它们,然后在脚本中稍后使用它们。

2 个答案:

答案 0 :(得分:6)

将所有参数存储在数组中:

args=("$@")

然后将它们打印为:

printf "%s\n" "${args[@]}"

答案 1 :(得分:0)

使用

args1="$*"
如果您希望所有参数都作为单个字符串,则

而不是set args1 = "$@";

注意:尝试使用双引号变量,否则会松开空格。

或者如果你想以不同的方式对待每一个,那么你需要一个数组:

argarr=("$@")

然后,您可以使用"${argarr[$index]}"访问数组的每个元素,并使用"${argarr[@]}"

一次访问所有元素