如果在 bash 脚本中从 $@ 找到第 n 个值作为字符串匹配的一部分,如何找到第 (n+1) 个参数值
How to find (n+1)th argument value if you find nth value as part of string match from $@ in a bash script
我们有一个 Bash 脚本。如果从 $@ 中找到第 n 个值作为字符串匹配的一部分,如何找到第 (n+1) 个参数值。 n 未知。
- 有没有办法找到n的位置或值?我知道如果输入参数与我要查找的所需字符串匹配,我可以找到它。
- 如果我从输入列表中找到参数,如何找到下一个(第(n+1))个位置的输入参数。
您可以遍历参数。
#!/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
如果您只对一个论点感兴趣,请说 g
#!/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
参数,put/assign 数组中的参数并遍历索引,现在假设您想要 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
我们有一个 Bash 脚本。如果从 $@ 中找到第 n 个值作为字符串匹配的一部分,如何找到第 (n+1) 个参数值。 n 未知。
- 有没有办法找到n的位置或值?我知道如果输入参数与我要查找的所需字符串匹配,我可以找到它。
- 如果我从输入列表中找到参数,如何找到下一个(第(n+1))个位置的输入参数。
您可以遍历参数。
#!/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
如果您只对一个论点感兴趣,请说 g
#!/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
参数,put/assign 数组中的参数并遍历索引,现在假设您想要 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