我有一个bash脚本,运行如下:
./script.sh var1 var2 var3.... varN varN+1
我需要做的是先获取2个变量,最后2个变量并将它们插入到文件中。 2 last和2之间的变量应作为整个字符串传递给另一个文件。怎么能在bash中完成呢?
当然我可以使用" read var"来定义一个特殊变量。指令,然后从键盘输入整个字符串,但我的目标是从脚本输入
传递它们答案 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