如何在Shell中处理10个以上的参数


Answers:


158

使用花括号将其设置为关闭:

echo "${10}"

您还可以像这样迭代位置参数:

for arg

要么

for arg in "$@"

要么

while (( $# > 0 ))    # or [ $# -gt 0 ]
do
    echo "$1"
    shift
done

2
请注意,$ {10}将在bash中工作,但会限制您的可移植性,因为sh的许多实现只允许使用一位数字指定。
威廉·珀塞尔

1
@William:有些外壳不接受它,例如原始的旧版Bourne外壳,但是除了我在另一条注释(Bash,dash,ksh和zsh)中列出的外壳之外,它也可以在csh,tcsh中使用和Busybox灰。
暂停,直到另行通知。

1
@WilliamPursell ${10}定义由POSIX
史蒂芬便士

2
${10}仅当使用不符合标准的非常旧的实现时,才需要担心工作。可能只具有历史意义...但是我还没有使用过它!我想是因为最佳实践表明,除非重复使用10个参数,否则实在太多了,在这种情况下,您将遍历它们"$@"而不是枚举它们。
威廉·珀塞尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.