bash:从$ 3开始将params传递给另一个程序(比如tar)

时间:2010-09-21 21:24:26

标签: bash

假设我的脚本从$ 3开始采用文件名

e.g。

archive u 2342 a.txt b.png c.html d.js
archive u 2222 a.txt b.png

我想压缩从$ 3开始列出的所有文件 我怎么能这样做?

感谢

3 个答案:

答案 0 :(得分:6)

zip archivename.zip "${@:3}"

答案 1 :(得分:5)

bash命令shift是你的朋友。

脚本example.sh

#!/bin/bash
shift 3
echo $*
使用example.sh 1 2 3 4 5调用

将输出4 5

答案 2 :(得分:2)

FIRST=$1
shift

SECOND=$1
shift

echo $FIRST
echo $SECOND
echo tar cf archive.tar "$@"

输入:

./test.sh 1 2 3 4 5

输出:

1
2
tar cf archive.tar 3 4 5