![]() |
Zamiast numerków dajesz *.
Polecenie basename pobiera tylko nazwę pliku. na końcu dodałem samo dd które ma być kompletnym poleceniem dd. Cytat:
|
Niestety, ale jest postęp: :D
Kod:
przemek@Andy A czemu dorzuciłeś coś*takiego: " dd;;" ? Po za tym nie mogę użyć tych nazw bo nie znam numerów kryjących się pod 12345 i 1234567. |
Źle do tego podszedłeś.
Wszystko powinno się*dziać w pętli do wyczerpania plików: Kod:
#!/bin/bash |
Mój kod miał 5 linii, a w Twoim jest błąd w 6 ;) Ale nieważne. Operacje na stringach w bashu wymagają pewnego rozszerzenia, może go u Ciebie nie ma. To co dałem w poprzednim poście powinno działać.
|
Na pałę wkleiłem zawartość z twojego [code] [/ code]. Mówisz, że źle? ;)
|
Wklej zawartość pliku test.sh
Edit: Dobra, nieważne. Spróbuj tak: Kod:
bootrom="$(find ${HOME} *_BOOT_ROM.bin -maxdepth 0 -exec basename {} \;)" |
Nie rozumiem tego skryptu za bardzo. Zwraca mi to:
Kod:
/home/przemek/test.sh: line 6: .: wymagany argument w postaci nazwy plikuNo dobra, to opiszę jak najdokładniej co chcę zrobić i po kolei. Więc chciałbym pociąć pliki za pomocą dd - i to mi się udaje. Pliki które będę ciął mają różne nazwy, a mogą być konkretnie takie, zawsze po trzy (w miejscach 12345 i 1234567 zawsze dowolne liczby, w niektórych nazwach dodatkowe znaki i spacja): SCPH-12345 R_1234567_BOOT_ROM.bin SCPH-12345 R_1234567_DVD_ROM.bin SCPH-12345 R_1234567_NVM.bin lub takie : SCPH-12345_1234567_BOOT_ROM.bin SCPH-12345_1234567_DVD_ROM.bin SCPH-12345_1234567_NVM.bin lub takie: DESR-12345_1234567_BOOT_ROM.bin DESR-12345_1234567_DVD_ROM.bin DESR-12345_1234567_NVM.bin lub takie: DTL-H12345_BOOT_ROM.bin DTL-H12345_DVD_ROM.bin DTL-H12345_NVM.bin Skrypt powinien sam się dowiedzieć jaką nazwę mają pliki i je przypisać do zmiennych: "bootrom", "dvdrom", "eeprom" tak aby nie wpisywać do dd ręcznie nazw lub aby nie ustalać nazw przed odpalaniem skryptu. Na tę chwilę skrypt wygląda tak: Kod:
#!/bin/bashKod:
SCPH-12345 R_1234567_BOOT_ROM.binKod:
/home/przemek/PS: brakuje też zmiennej prefix, ale to nie istotne, jak będę wiedział jak wydłubać te nazwy to sobie z tym poradzę. |
A co ma dd z tymi plikami zrobić? Co chcesz osiągnąć.
Masz np pliki: *name1_name2.* (gdzie gwiazdka to dowolna wartość). Co chcesz z nimi zrobić? |
Cytat:
Kod:
#!/bin/bash |
Ale to nie istotne co chcę z nimi zrobić. Robię to co chcę i to działa, więc nie ma sensu drążyć tego. ;) Po prostu szukam sposobu na automatyczne wyszukiwanie plików o określonym wzorze i wrzucanie tego pod zmienną - po to aby skrypt sam wrzucał te nazwy dla dd i użytkownik nie musiał nic wybierać, zmieniać nazw plików etc. To całe moje marzenie na dziś. :D
|
A co ma dd z tymi plikami zrobić? Co chcesz osiągnąć.
Masz np pliki: *name1_name2.* (gdzie gwiazdka to dowolna wartość) i chcesz z nimi zrobić? |
@Andy
Co to dalej nie istotne. Zmienić nazwy i pociąć na kawałki, ale jak mówiłem to nie jest moim problemem. Niech Ci będzie, że zmienna. ;p Nie. Spójrz na skrypt w dd to będziesz wiedział. Tylko dwa wpisy można by użyć z mmv co jest bez sensu, skoro przez dd także a i tak go używam i tak i z tymi samymi plikami. @Bartez Niestety konkretnie. Muszę je rozpoznawać po samej końcówce bo początek może mieć spację może nie mieć, i może mieć różną długość. Stąd pomysł na wyszukiwanie tych plików przez find. Chciałbym wynik tego wyszukiwania przypisać do zmiennej ;] aby używać ją potem w dd. Niestety to co wymyśliłem przypisuje mi nie tylko nazwę pliku, ależ też ścieżkę do niego - i nawet bym się z tym pogodził ( bo nadal można by używać w dd) gdyby nie ten felerny enter. |
Czyli Berion chce skopiować pliki które mają*częściową stałą*nazwę*a tą drugą*zmienną*w inne miejsce pod inną nazwą? Skoro tak to mmv zrobi to bez kombinowania w bashu.
|
A ten plik, do którego chcesz skopiować to jakoś konkretnie ma się nazywać? W sensie, czy masz jakiś pattern na nazwy finalnych plików?
|
Cytat:
Ja się*nie pytałem co chcesz w skrypcie zrobić, tylko co chcesz zrobić. Z tego co do tej pory napisałeś to chcesz coś*zrobić*z plikami które mają częściowo stałą nazwę i różnią się tylko kilkoma znakami? Pytanie moje jest co. Czyli proszę raz jeszcze w dwóch-trzech zdaniach jak najprościej opisz co co chcesz osiągnąć. Cytat:
|
| Wszystkie czasy w strefie CET. Aktualna godzina: 13:22. |
Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.