#sh
#sh
Вопрос:
У меня есть следующий скрипт, и я получаю следующую ошибку: Ошибка: неправильная замена
value="$(cat temp.txt)"
valueWOBegin="$(echo ${value/*====BUILDTYPES====/})"
valueWOEnd="$(echo ${valueWOBegin/====END BUILDTYPES====*/})"
Это temp.txt файл
====BUILDTYPES==== [BuildType_Decorated{name=debug, debuggable=true, testCoverageEnabled=false, jniDebuggable=false, псевдолокалесенаближенный=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=false, zipAlignEnabled=true, signingConfig=SigningConfig_Decorated{name= отладка, файл хранилища=/mypath/ debug.хранилище ключей, storePassword=android, keyAlias=AndroidDebugKey, keyPassword=android, storeType= jks, v1SigningEnabled=true, v2SigningEnabled=true, v1SigningConfigured=false, v2SigningConfigured=false}, embedMicroApp=false, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}, BuildType_Decorated{name=release, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=true, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={ }, mResValues={}, mProguardFiles=[/mypath/proguard-rules.pro], mConsumerProguardFiles=[], mManifestPlaceholders={}}] ====КОНЕЧНЫЕ ТИПЫ СБОРКИ ====
Комментарии:
1.
${variable/string/}
расширение работает не во всехsh
реализациях. С bash или ksh это будет работать нормально.2. Есть ли у меня какая-либо альтернатива с использованием sh? Я запускаю этот скрипт в контейнере.
3. Как насчет
${value##*====BUILDTYPES====}
and${value%%====END BUILDTYPES====*}
? Предполагается, что они должны работать на всех оболочках POSIX, но я не уверен, что они именно то, что вы ищете.