Digamos que eu tenha várias variáveis em um script de shell (por exemplo, em zsh):
FOLDER_1, FOLDER_2, etc.
Estas variáveis referem-se a pastas descendentes de /
. Por exemplo, se eu tiver um caminho /home/me/stuff/items
as variáveis seriam:
FOLDER_1='home'
FOLDER_2='me'
FOLDER_3='stuff'
Agora, digamos que quero reconstruir o caminho correspondente concatenando as variáveis. Uma maneira possível é construir o caminho da seguinte forma:
PATH=$FOLDER_1/$FOLDER_2/$FOLDER_3/
No entanto, digamos que algumas das variáveis FOLDER_i
vêm com barras à direita, enquanto outras não (e não sabemos qual), por exemplo,
FOLDER_1='home'
FOLDER_2='stuff/'
FOLDER_3='items'
Minha pergunta é: Como eu poderia construir o caminho de maneira robusta? (por exemplo, evitando barras duplas e adicionando-as onde elas precisam estar).
Eu pensei que uma maneira de fazer isso é adicionar o /
sempre entre pares de variáveis e, em seguida, excluir quaisquer duplicatas com sed
, mas não posso fazê-lo funcionar (não tenho certeza se estou lidando /
corretamente em sed
).
Além disso, estou reinventando a roda ? (ou seja, existe algum built-in que já faz isso?).
Finamente, se as variáveis estiverem em um array , por exemplo FOLDERS
, seria possível fazer isso sem loop? (ou alternativamente, por looping, mas sem saber quantos FOLDERS
existem na matriz).