linux problem z bash

Dominik Kiełtyka
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 26
0

Cześć czy może ktoś wyjaśnić:

Przykład 1

Kopiuj
#!/bin/bash
ss="testasd/das/cc/sadas.asdasd"

p="${ss}" | sed "s/.*\///"
echo $p


Przykład 2

Kopiuj
#!/bin/bash
ss="testasd/das/cc/sadas.asdasd"

echo "${ss}" | sed "s/.*\///" 

Dlaczego przykald 2 wypisuje prawidłowy wynik, przykład 1 wypisuje pusty string, nie działa przypisanie do zmiennej. W jaki sposób można rozwiązać powyższy problem.

WhiteLightning
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3257
0

A co ma wypisac jak ustawiasz zmienna ss a wypisujesz x ?

Dominik Kiełtyka
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 26
0

znalazłem rozwiązanie:

Kopiuj
#!/bin/bash
ss="testasd/das/cc/sadas.asdasd"

x=`echo "${ss}" | sed "s/.*\///"`
echo $x

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

echo "${ss}" | sed "s/.*\///" możesz rozumieć jako (echo "${ss}") | (sed "s/.*\///") (nawiasy podane wyłącznie w celu zilustrowania).

WhiteLightning
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3257
2

Spoko. Jak cos to masz jeszcze tr do zmiany znakow, czyli np:

Kopiuj
echo "testasd/das/cc/sadas.asdasd" | tr '//' "."

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.