>我有一个看起来像这样的docker 入口点脚本:
#!/bin/sh
LABEL=$1
mkdir -p /backup/$LABEL
...
我可以通过 $1、$2 等以正常 bash 方式访问传递的参数,但我还需要知道传入的参数数量。 起初我以为我可以这样做:
if [ $# -eq 2 ];
then
但是,这不起作用。 关于如何检索参数数量的任何想法?
TIA,奥莱
很奇怪。这应该有效。但是,如果你能$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 入口点的第一个参数?