我有一个Docker入口点脚本,如下所示:
#!/bin/sh
LABEL=$1
mkdir -p /backup/$LABEL
...
我可以通过$ 1,$ 2等访问以正常bash方式传递的参数,但我还需要知道传入的参数数量。起初我以为我可以这样做:
if [ $# -eq 2 ];
then
然而,这不起作用。关于如何检索参数数量的任何想法?
TIA, 奥莱
答案 0 :(得分:1)
怪异。这应该工作。但是,如果您可以阅读位置参数$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"
答案 1 :(得分:0)
好的 - 实际上没有任何东西可以解决。原因是入口点行需要如下所示:
ENTRYPOINT ["bash", "/run.sh"]
我看起来像这样:
ENTRYPOINT ["/run.sh"]
有关详细信息,请参阅此处: Referencing the first argument passed to the docker entrypoint?