Rozszerzanie parametrów pojedynczej zmiennej działa zgodnie z oczekiwaniami. Ale jak rozszerzyć parametry zawierające kilka zmiennych? Przykład:
#!/bin/sh
foo=/lorem/ipsum; bar=dolor/sit
tmp="$foo/$bar"
printf '%s\n' "${tmp%/*}"
Jak uruchomić rozszerzenie tego parametru bez potrzeby stosowania zmiennej tymczasowej?
Odpowiedzi:
Rozszerzenie pozwala na tylko jedną zmienną, wymagając temp var. Jeśli jednak jest to dokładny przypadek użycia, nazwa_katalogu może dla Ciebie zadziałać, ponieważ robi prawie dokładnie to samo, co% / *:
źródło
Oto jedno ... obejście ... które nie ustawia zmiennej tymczasowej w bieżącej powłoce:
źródło