Никакой глобус (*
, ?
или что-то в этом роде) не работает внутри кавычек ("…"
). Вы должны расстаться с партией. Однако "… -javaagent:/path/to/lib/newrelic-agent-"*".jar"
не будет работать, поскольку glob попытается найти файл, начинающийся с … -javaagent:
.
Следовательно, поместите jar
в отдельную переменную и используйте эту переменную. Поскольку не может быть или несколько версий библиотеки, вы можете использовать проверку и предупредить пользователя
#! /bin/bash
lib=("/path/to/lib/newrelic-agent-"*.jar)
if [ "${#lib[@]}" != 1 ]; then
echo "Found no or multiple versions of lib newrelic agent"
exit 1
fi
export JVM_OPTS="... -javaagent:$lib"
Это работает только в bash
-подобных оболочках, которые поддерживают массивы array=(…)
. Если вам нужна версия posix, используйте
#! /bin/sh
exactlyOne() {
if [ "$#" != 1 ]; then
echo "Found no or multiple matches"
exit 1
fi
echo "$1"
}
lib=$(exactlyOne "/path/to/lib/newrelic-agent-"*.jar)
export JVM_OPTS="... -javaagent:$lib"