Dyskusja: Linux
Podgląd pojedynczego posta
Stary 20.01.2015, 22:02   #612
Berion
Hibernant
CDRinfo VIP
 
Avatar użytkownika Berion
 
Data rejestracji: 24.06.2004
Posty: 17,115
Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>
Nie rozumiem tego skryptu za bardzo. Zwraca mi to:
Kod:
/home/przemek/test.sh: line 6: .: wymagany argument w postaci nazwy pliku
.: usage: . filename [arguments]
t.sh

No 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/bash

bootrom="$(find ${HOME} *_BOOT_ROM.bin -maxdepth 0)"
dvdrom="$(find ${HOME} *_DVD_ROM.bin -maxdepth 0)"
eeprom="$(find ${HOME} *_NVM.bin -maxdepth 0)"

dd if=$HOME/"$bootrom" of=$HOME/"$prefix".rom0 bs=2M
dd if=$HOME/"$dvdrom" of=$HOME/"$prefix".rom1 bs=256K count=1
dd if=$HOME/"$dvdrom" of=$HOME/"$prefix".rom2 bs=256K count=1
dd if=$HOME/"$dvdrom" of=$HOME/"$prefix".erom skip=512 count=3584
dd if=$HOME/"$eeprom"  of=$HOME/"$prefix".nvm bs=1K count=1
# dd if=$HOME/"$eeprom"  of=$HOME/"$prefix".mec bs=4 count=1 skip=chujwieile
echo -e "\n"
break
I to nie działa bo zmienne dostają oprócz nazwy pliku też ścieżkę i znak entera, czyli zamiast oczekiwanej np.
Kod:
SCPH-12345 R_1234567_BOOT_ROM.bin
dostaję:
Kod:
/home/przemek/
SCPH-12345 R_1234567_BOOT_ROM.bin




PS: brakuje też zmiennej prefix, ale to nie istotne, jak będę wiedział jak wydłubać te nazwy to sobie z tym poradzę.
__________________
Wszystko co chciałbyś wiedzieć o:
| PSX | PS2 | PS3 | Xbox |

FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF

Ostatnio zmieniany przez Berion : 20.01.2015 o godz. 22:07
Berion jest offline   Odpowiedz cytując ten post