Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Przerobienie skryptu z bash na ash  (Przeczytany 2502 razy)

oszo_m

  • Gość
Przerobienie skryptu z bash na ash
« dnia: 2014-09-08, 14:33:49 »
Witam.

Man na dysku sieciowym (Freecom - Dual Drive Network Center) sporo plików których nazwy chciałbym pozmieniać. Napisałem do tego prosty skrypt w bashu, który z pliku tekstowego
1. Pobiera pełną nazwę pliku, którego chcę nazwę zmienić.
2. Rozszeszenie pliku.
3. Nową nazwę

#!/bin/bash
IFS=$';'
while read linia; do
tablica=($linia)
  nowa_nazwa=${tablica[1]}"."${tablica[2]}
  stara_nazwa=${tablica[0]}
  mv ./test/$stara_nazwa ./test/$nowa_nazwa
done < swk_rename.txt
unset IFS

Sam plik tekstowy jest w formacie
Stara_Nazwa.Rozszerzenie;Nowa_Nazwa;Rozszerzenie

O ile skrypt ten na kompie działa, to nie mogę go uruchomić na ww dysku, gdzie jest busybox (ash) zainstalowany.

Czy byłyby ktoś tak miły i mógłby ten skrypt poprawić żeby on na tym dysku zadziałał?

PS.
Skrypt uruchamiany na DDNC, miał zmienioną pierwszą linie na #!/bin/sh

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Przerobienie skryptu z bash na ash
« Odpowiedź #1 dnia: 2014-09-08, 18:05:34 »
Problem zapewne leży w tablicach. Po co ci one? Przeczytaj manual do read.
#!/bin/ash
IFS=';'
while read old ext new; do
    echo "./test/${old}" "./test/${new}.${ext}"
done < swk_rename.txt
unset IFS
I używaj cudzysłowów, bo kiedyś możesz być niemiło zaskoczony wynikiem działania skryptu.

oszo_m

  • Gość
Przerobienie skryptu z bash na ash
« Odpowiedź #2 dnia: 2014-09-15, 12:06:19 »
Działa.Wielkie dzięki.