Strona 1 z 1

sed, bash - zmiana jednego wiersza

: 19 grudnia 2011, 13:29
autor: sethiel
W pliku xml są między innymi linie:

Kod: Zaznacz cały

<bss>wlan0bssvap1</bss>
<wep-default-key>1</wep-default-key>
<wep-key-length>104</wep-key-length>
<wep-key-ascii>no</wep-key-ascii>
<wpa-personal-key>random01</wpa-personal-key>
<security>wpa-personal</security>
Używam polecenia sed w skrypcie:

Kod: Zaznacz cały

#!/bin/bash
PASS_OLD="random01"
PASS_NEW="00-01-20"
sed -i 's/$PASS_OLD/$PASS_NEW/' /srv/tftp/config.xml
i nic się nie dzieje.
Co tu robię źle?
Natomiast jak wpisuję to z ręki w konsoli to działa. Dlaczego w skrypcie to nie hula?

To co działa z ręki w konsoli:

Kod: Zaznacz cały

sed -i 's/random01/00-00-00/' /srv/tftp/config.xml
[edycja]
Rozwiązanie (tragiczne moim zdaniem) - jeśli ktoś zaproponuje ładniejsze to będzie fajnie

Kod: Zaznacz cały

#!/bin/bash
PASS_OLD="random01"
PASS_NEW="00-01-20"
echo "sed -i 's/$PASS_OLD/$PASS_NEW/' /srv/tftp/config.xml" > ./plik
bash ./plik

: 19 grudnia 2011, 14:51
autor: markossx
Próbowałeś z -e ?

: 19 grudnia 2011, 14:58
autor: sethiel
Tak, z -e i bez niczego i generalnie nic.
Próbowałem też tak:

Kod: Zaznacz cały

zmienna="sed -i 's/$PASS_OLD/$PASS_NEW/' /srv/tftp/config.xml"
$zmienna
ale wywołanie powodowało błąd:

Kod: Zaznacz cały

"sed: -e expression #1, char 1": unknown command: `'
Tak więc coś nie tak ze zmiennymi w pamięci się dzieje, albo tego używa się inaczej niż myślę.

: 20 grudnia 2011, 16:27
autor: lessmian2
Panie sethiel. Wiesz Pan czym się różni ' od "? No to sprawdź:

Kod: Zaznacz cały

#!/bin/bash
PASS_OLD="random01"
PASS_NEW="00-01-20"
sed -i "s/$PASS_OLD/$PASS_NEW/" /srv/tftp/config.xml

: 20 grudnia 2011, 20:06
autor: markossx
Oj, zanim napisał na forum powinien był to sprawdzić...