shell脚本 - 将一个变量分配给另一个变量
问题描述:
我有疑问。当我声明一个值并赋值给某个变量时,我不知道如何将相同的值重新赋值给另一个变量。请参阅下面的代码片段。shell脚本 - 将一个变量分配给另一个变量
#/bin/sh
#declare ARG1 to a
a=ARG1
#declaring $a to ARG2
ARG2=$`$a`
echo "ARG 2 = $ARG2"
应该显示我的输出
ARG 2 = ARG1
帮我出这一点。
这是我的实际脚本。
#!/bin/sh
a=AA
b=BB
c=CC
d=DD
e=EE
f=FF
alpha_array=(a b c d e f)
process_array=(proc1 proc2 proc3 proc4)
array_1=("")
array_2=("")
display_array() {
echo "array1 = ${array_1[@]}"
echo "array2 = ${array_2[@]}"
}
checkarg() {
if [[ " ${alpha_array[*]} " == *" $token "* ]]; then
echo "alphabet contains $token "
array_1=("${array_1[@]}" "$token")
$token=${$token}
echo "TOKEN = $token"
elif [[ " ${process_array[*]} " == *" $token "* ]]; then
echo "process contains $token "
array_2=("${array_2[@]}" "$token")
else
echo "no matches found"
display_array
exit 1
fi
}
for token in [email protected]
do
echo $token
checkarg
done
display_array
在这里,下面两行
$token=${$token}
echo "TOKEN = $token"
应该显示我的输出
TOKEN = AA
TOKEN = BB
当我用下面的参数运行我的脚本。
./build.sh a b proc1
请在这两行上帮助我。
答
要分配与变量arg2
给变量a
关联的值,则需要简单地运行dest=$source
:
a=ARG1
arg2=$a
echo "ARG 2 = $arg2"
本地shell变量使用小写的变量名是惯例,而不是必然性 - - 但这样做的好处是避免与环境变量和内置函数的冲突,两者都按照惯例使用全大写字母。
我编辑了标题,因为这个问题似乎与声明变量没有任何关系。 (变量_can_在shell中声明,但这对于显式设置类型或范围元数据是必要的,而不是分配值)。 – 2014-12-18 23:02:10