BASH programiranje

Ganesh

Fizikalc
14. avg 2009
2.921
0
36
Allarround
rescue.facelock.net
Imamo tu kakega dobrega (res izkušenega) BASH programerja?
Potrebujem nekoga, ki bi doprogramiral/avtomatiziral neke "procese" na Ubuntu strežniku...

Zainteresirani lahko tu ali na ZS.
 

ceedevita

Majstr
24. jul 2009
6.884
108
63
štajerska
se mi zdi , da bi tisto, kar je pegasus napisal moralo delovati

če prav razumem se bo ime iskane datoteke spreminjalo , končnica enaka ? je to sploh pomembno ? drugače pa daš skripti parameter ime iskane datoteke

znotraj direktorija ne rabiš delati nov find. zadostuje ls
in potem v zanki obdelaš vse datoteke

recimo :

var=$(ls ime_datoteke)
for var in $var
do
...
done

nimam basha in ubuntuja tako da ne vem 100% če to tam deluje

drugače pa , če iščem datoteko uporabim : find ime_dir -name "ime.datoteke"
 

ceedevita

Majstr
24. jul 2009
6.884
108
63
štajerska
rade volje samo nimem ne basha ne ubuntuja. gnara ne rabim. če ne boš nobenega našel bom nekje poiskal bash pa se poigral, sam ubuntuja pa nimam kam dat
 

Ganesh

Fizikalc
14. avg 2009
2.921
0
36
Allarround
rescue.facelock.net
Ja, to sem pravilno zapisal (brez extension). Če direktorij na drugi strani je potem so tudi podatki že tam.

Namen programa je, da avtomatsko naredi kopije določenih gradiv na drugi lokaciji, ki se koristi za distribucijo in pri katerih bodo imena direktorijev odgovarjala določenemu polju v podatkovni bazi. Program bo tako vedno kopiral le nova gradiva.
 

ceedevita

Majstr
24. jul 2009
6.884
108
63
štajerska
probaj to, če ti bo delovalo

prvi parameter ime datoteke ( recimo *.pdf ) drugo začetni direktorij

dela samo echo. nič ne piše nikamor. tudi ne vem kje imaš find in ostale komande. predivevam da na /usr/bin in ni sprobano na bashu

Koda:
ime_dat=$1
echo $ime_dat
ime_dir=$2
DATAFILE=$(/usr/bin/find $ime_dir -name "$ime_dat" )
for DATAFILE in $DATAFILE
do
        dir=$(/usr/bin/dirname $DATAFILE)
        echo $dir
        echo $DATAFILE
        if [[ -e "/druga_lokacija/$dir" ]]
        then
                    echo "obstaja"
        else
               echo "/usr/bin/mkdir /druga_lokacija/$dir "
               filetek=$(/usr/bin/basename  $DATAFILE)
               echo "/usr/bin/cp $DATAFILE  /druga_lokacija/$dir/$filetek"
                
        fi
done
 

Ganesh

Fizikalc
14. avg 2009
2.921
0
36
Allarround
rescue.facelock.net
HVALA.

Preizkusim jutri,danes sem že v drugih vodah
smile-1.gif