`У пакета нет кандидата на установку` в Debian, но не в Ubuntu

Позиционные параметры области действия вызывающего объекта недоступны в функции. Вам нужно, чтобы вызывающий объект так или иначе передал их функции.

В bashэто можно сделать с помощью массива (, но имейте в виду, что массивы, отличные от "$@"в bash, начинаются с индекса 0 вместо 1 (, как в ksh, но в отличие от все остальные оболочки )).

f() {
  printf 'Caller $1: %s\n' "${caller_argv[0]}"
  printf '    My $1: %s\n' "$1"
}
caller_argv=("$@")
f blah

Или передать их дополнительно:

f() {
  printf 'Caller $1: %s\n' "$2"
  shift "$(($1 + 1))"
  printf 'My $1: %s\n' "$1"
}

f "$#" "$@" blah

Здесь $1содержит количество позиционных аргументов вызывающего объекта, поэтому fзнает, где начинаются его собственные аргументы.

0
24.01.2020, 03:04
1 ответ

Если вы используете тег 7.2-debian-10-prod, чтобы получить образ на основе Debian 10 (Buster ), все работает нормально:

docker pull bitnami/php-fpm:7.2-debian-10-prod

Внутри контейнера запустите apt update && apt install -y php-smbclient php-sybase.

1
28.01.2020, 02:38

Теги

Похожие вопросы