我们有一个Bash脚本。如果您从$ @找到第n个值作为字符串匹配的一部分,则如何查找第(n + 1)个参数值。 n未知。
您可以遍历参数。
#!/usr/bin/env bash
n=1
for f; do
printf '%s %s\n' "$n" "$f"
((n++))
done
针对一堆参数运行它。
./myscript {a..z}
输出
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
11 k
12 l
13 m
14 n
15 o
16 p
17 q
18 r
19 s
20 t
21 u
22 v
23 w
24 x
25 y
26 z
如果您只对一个论点感兴趣。
#!/usr/bin/env bash
n=1
for f; do
[[ $f == g ]] && printf '%s %s\n' "$n" "$f"
((n++))
done
./myscript {a..z}
输出
7 g
要回答n+1
参数,请将参数放在数组中并遍历索引,类似。
#!/usr/bin/env bash
args=("$@")
for n in "${!args[@]}"; do
[[ ${args[n]} == g ]] && echo "${args[n+1]}"
done
./myscript {a..z}
输出
h