Я нашел этот вопрос: Как написать функцию bash, чтобы обернуть другую команду?
И это вроде как ответило на мой вопрос, но не совсем ..
Я хочу сделать что-то похожее на приведенное выше, но установить переменную среды в зависимости от аргументов команды - синтаксический анализ аргументов - это то место, где я застрял
Я хочу обернуть docker-compose
в функцию, и если это up
, затем установите переменную env, в которой хранится каталог файла docker -compose.yml; если он не работает, то отключите env var.
function docker-compose () {
if "$@" == "*up*"; then
DC_FILE=${$PWD##*/}
elif "$@" == "*down*"; then
unset DC_FILE
fi
command docker-compose "$@"
}
Что-то вроде этого, но синтаксический анализ аргументов - вот что меня застряло
абстрактно:
function fun() {
if the arguments contain "a":
set var
elif the arguments contain "b":
unset var
fi
execute command with all arguments passed to it
}