0

我知道如何显示所有参数和最后一个参数,但我需要知道如何显示除最后一个参数之外的所有参数,

$ bash show.sh a.txt b.txt c.txt ~/dest
a.txt b.txt c.txt
4

2 回答 2

2

你应该这样做:

echo ${*:1:$(($#-1))}

这将获取所有参数,从第一个索引开始(忽略脚本名称)并打印到倒数第二个索引。

于 2013-07-09T01:41:59.687 回答
0

如果您正在使用bash,这是一种方法:

#!/bin/bash

for i in $(seq $(($#-1)) -1 1) ; do
    echo ${BASH_ARGV[$i]}
done

BASH_ARGV是一个包含参数堆栈的数组,您可以使用它seq来获取该数组的所需索引(由于堆栈性质,顺序相反)。

$#是参数的数量。成绩单如下:

pax> ./show.sh a.txt b.txt c.txt ~/dest
a.txt
b.txt
c.txt
于 2013-07-09T01:40:48.507 回答