访问参数的数量传入docker run命令脚本

我有一个docker的脚本,看起来像这样:

#!/bin/sh LABEL=$1 mkdir -p /backup/$LABEL ... 

我可以通过$ 1,$ 2等访问通过正常的bash方式传递的参数,但我也需要知道传入的参数的数量。起初我以为我可以这样做:

 if [ $# -eq 2 ]; then 

但是,这是行不通的。 任何想法如何检索参数的数量?

TIA,Ole

奇怪的。 这应该工作。 但是,如果你可以读取位置参数$1$2 ,你可能有运气循环他们:

 #!/bin/bash params="$@" while param=$1 && [ -n "$param" ] do shift ((count += 1)) echo "here comes $param" done echo "All params: ${params[@]}" echo "We saw $count of them" 

好的 – 实际上没有任何东西是通过解决的。 原因是入口点线需要看起来像这样:

 ENTRYPOINT ["bash", "/run.sh"] 

矿看起来像这样:

 ENTRYPOINT ["/run.sh"] 

请参阅这里获取更多信息: 引用传递给docker入口点的第一个参数?