Új hozzászólás Aktív témák

  • Fecogame
    veterán

    #!/bin/bash
    for X in $(seq 0 15) ; do
    HEX=$(printf '%X\n' $X)
    mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_${HEX} | gzip > /tmp/DATABASE_${HEX}.sql.gz
    done

    A for csinálja a ciklust - ez úgy működik bashban, hogy az in után lévő lista elemeit adja szépen sorban a ciklusváltozónak (esetünkben X-nek). Ezt a listát a seq paranccsal generálom, ez annyit tud, hogy két (lebegőpontos) érték között (opcionálisan megadott lépésközzel) kiír számokat.

    Mivel hexa számokat használtok, a következő sorban a decimális értékeket gyorsan át is konvertálom (a seqnak is meg lehet adni printf-stílusú formázást, de sajnos csak lebegőpontost, szóval ott ezt nem lehetett elsütni).

    Ezek után nem maradt más, mint a konkrét parancs, amibe be van helyettesítve a hexa változó.

    Köszi!

    Jester01: Neked is! A te megoldásod nem működik, ha a scriptem fejlécében ez van megadva:

    #!/bin/sh

    Csak ha ez:

    #!/bin/bash

    Mi az sh kompatibilis verzió a tiedből?

Új hozzászólás Aktív témák