Скажіть, у мене в скрипті оболонки є кілька змінних (наприклад, в zsh):
FOLDER_1, FOLDER_2, etc.
Ці змінні відносяться до папок, що походять від /. Наприклад, якщо у мене є шлях/home/me/stuff/items
змінні будуть:
FOLDER_1='home'
FOLDER_2='me'
FOLDER_3='stuff'
Тепер скажіть, що я хочу зібрати відповідний шлях шляхом об'єднання змінних. Один з можливих способів - побудувати шлях таким чином:
PATH=$FOLDER_1/$FOLDER_2/$FOLDER_3/
Однак скажіть, що деякі змінні FOLDER_iпоставляються з косою косою вперед, а інші - (і ми не знаємо, яка), наприклад
FOLDER_1='home'
FOLDER_2='stuff/'
FOLDER_3='items'
Моє запитання: Як я міг грунтовно побудувати шлях? (наприклад, уникнення подвійних нахилів і додавання їх там, де вони повинні бути).
Я думав, що один із способів зробити це - додати /завжди між парами змінних, а потім видалити всі дублікати за допомогою sed, але я не можу змусити його працювати (я не впевнений, що в ньому /правильно поводиться sed).
Крім того, я вигадую колесо ? (тобто є якась вбудована, яка вже робить це?).
Зрештою, якщо змінні знаходяться в масиві , наприклад FOLDERS, чи можна це зробити без циклу? (або альтернативно, циклічно, але не знаючи, скільки FOLDERSїх у масиві).
%метод працює для однієї кінцевої косої риси, згаданої в квестоні. Задовольняти, коли є декілька косої риси,${parts[@]%%/*}працює. Ось посилання на трохи більше інформації про тестую рису: Що означають подвійні косої риски на шляху UNIX? Чи 'cd dir / subdir // дійсний ...