linux problem z bash

0

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

Przykład 1

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

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


Przykład 2

#!/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.

0

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

0

znalazłem rozwiązanie:

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

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

1

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

2

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1