将脚本传递给数组

时间:2015-08-20 07:54:11

标签: bash

我有一个bash脚本,运行如下:

./script.sh var1 var2 var3.... varN varN+1

我需要做的是先获取2个变量,最后2个变量并将它们插入到文件中。 2 last和2之间的变量应作为整个字符串传递给另一个文件。怎么能在bash中完成呢?

当然我可以使用" read var"来定义一个特殊变量。指令,然后从键盘输入整个字符串,但我的目标是从脚本输入

传递它们

2 个答案:

答案 0 :(得分:5)

argc=$#
argv=("$@")

first_two="${argv[@]:0:2}"
last_two="${argv[@]:$argc-2:2}"
others="${argv[@]:2:$argc-4}"

答案 1 :(得分:1)

#!/bin/bash

# first two
echo "${@:1:2}"
# last two
echo "${@:(-2):2}"
# middle
echo "${@:3:(($# - 4))}"

所以样本

./script aaa bbb ccc ddd eee fff gggg hhhh
aaa bbb
gggg hhhh
ccc ddd eee fff