Аргументы команды находятся в массиве $@
. Таким образом, вы можете передать требования в качестве дополнительных аргументов командной строки. Затем, после установки PROJECT_NAME
на первый аргумент, выполните shift
, чтобы удалить первый аргумент из $@
. Затем, после установки ENV_NAME
на (новый) первый аргумент, выполните shift
еще раз. Тогда $@
будет содержать только оставшиеся аргументы = список требований, поэтому вы можете использовать его с pip install
.
Незначительные изменения в вашем скрипте:
#!/usr/bin/env bash
PROJECT_NAME=$1; shift
ENV_NAME=$1; shift
...
pip install "$@"
И вызовсценария с:
path/to/script.sh the_project_name the_env_name django django-extensions django-debug-toolbar python-memcached djangorestframework
Если список требований уже находится в массиве Bash в контексте, где вы вызываете сценарий, то вы можете передать содержимое массива в качестве аргументов команды:
path/to/script.sh the_project_name the_env_name "${requirements[@]}"