Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在shell中处理10个以上的参数_Linux_Bash_Shell_Parameters - Fatal编程技术网

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

Linux 如何在shell中处理10个以上的参数,linux,bash,shell,parameters,Linux,Bash,Shell,Parameters,我在linux上使用bash shell,希望在shell脚本中使用10个以上的参数使用大括号来设置它们: echo "${10}" 您还可以像这样迭代位置参数: for arg 或 或 您最多可以有256个从0到255的参数,其中包括: ${255} 我认为极限取决于外壳。Bash、dash、ksh和zsh似乎没有sh-c'echo${333}'/usr/bin/*myshell轻松地增加到200万set$(seq 2097152);echo${2097152}注意,有10个参数会使它非

我在linux上使用bash shell,希望在shell脚本中使用10个以上的参数

使用大括号来设置它们:

echo "${10}"
您还可以像这样迭代位置参数:

for arg


您最多可以有256个从0到255的参数,其中包括:

${255}

我认为极限取决于外壳。Bash、dash、ksh和zsh似乎没有
sh-c'echo${333}'/usr/bin/*
myshell轻松地增加到200万
set$(seq 2097152);echo${2097152}
注意,有10个参数会使它非常混乱。也许最好使用选项(例如
-a1
-foo=bar
)。请参见
mangetopt
mangetopts
manbash
,以了解执行此操作的一些选项。另请参见:请注意,${10}将在bash中工作,但会限制您的可移植性,因为sh的许多实现只允许单个数字的规范。@William:有些shell不接受它,例如原始的遗留Bourne shell,但除了我在另一个注释中列出的shell(Bash、dash、ksh和zsh)之外,它还可以在csh、tcsh和Busybox ash中工作。@williampersell
${10}
定义为担心
${10}
只有在使用不符合标准的非常旧的实现时才需要工作。可能只是历史的兴趣…但我还没有使用过它!我想是因为最佳实践表明,10个参数太多了,除非它们被重复,在这种情况下,您将使用
“$@”
对它们进行迭代,而不是枚举它们。
while (( $# > 0 ))    # or [ $# -gt 0 ]
do
    echo "$1"
    shift
done
${255}