#bash #shell
#bash #оболочка
Вопрос:
Я запускаю сценарий оболочки, и у меня есть следующая строка:
keystore_location="/mnt/blumeta0/db2/keystore/keystore.p12"
Как мне получить строку раньше keystore
: /mnt/blumeta0/db2
т.е. Я знаю, как удалить разделитель из одного символа и путь, прежде чем хранилище ключей может измениться. Я пытался:
arrIN=(${keystore_location//"keystore"/ })
Ответ №1:
Вы хотите
arrIN=${keystore_location%%keystore*}
echo $arrIn
/mnt/blumeta0/db2/
%%
Оператор удаляет самое длинное совпадение, считывая с правой стороны строки
Обратите внимание, что существуют также операторы
% --- remove first match from the right side of the string
# --- remove first match starting from the left side of the string
## --- remove longest match starting for the left side of the string.
IHTH
Комментарии:
1. @oguzismail ; Doah. смотрите правки (надеюсь, это поможет!) . Всем удачи.
Ответ №2:
$ keystore_location="/mnt/blumeta0/db2/keystore/keystore.p12"
$ echo "${keystore_location%%/keystore*}"
/mnt/blumeta0/db2
%%/keystore*
удаляет самое длинное совпадение суффиксов, /keystore*
которое является шаблоном $keystore_location
глобуса.