/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Opsætning af script
Fra : Martin Johansen [600~


Dato : 12-04-04 00:38

Hejsa!

Jeg har et backup-script, som jeg selv har sammensat. Det virker fint,
omend det skal forbedres.

Det består af en masse cp-commands hvor alle har den samme
destination-dir.

Kunne man sætte en eller anden form for variable i scriptet, så jeg
istedet for 'cp foo bar' bare kunne skrive 'cp foo' ?

Og istedet for:

'cp foo bar'
'cp foo bar'
'cp foo bar'

... kunne jeg så skrive i en køre evt?

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


 
 
Simon Lyngshede (12-04-2004)
Kommentar
Fra : Simon Lyngshede


Dato : 12-04-04 09:21

On Mon, 12 Apr 2004 01:38:27 +0200, Martin Johansen [6000] wrote:

> Hejsa!
>
> Jeg har et backup-script, som jeg selv har sammensat. Det virker fint,
> omend det skal forbedres.
>
> Det består af en masse cp-commands hvor alle har den samme
> destination-dir.
>
> Kunne man sætte en eller anden form for variable i scriptet, så jeg
> istedet for 'cp foo bar' bare kunne skrive 'cp foo' ?
>
> Og istedet for:
>
> 'cp foo bar'
> 'cp foo bar'
> 'cp foo bar'
>
> .. kunne jeg så skrive i en køre evt?

Du er nok nødtil at scripte lidt

f.eks
#!/bin/sh
cp $1 bar

Hmm det var vidst det. Så kan du køre "<scriptnavn> foo"


--
Simon



Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 10:07

On Mon, 12 Apr 2004 10:21:19 +0200, Simon Lyngshede wrote:

> Du er nok nødtil at scripte lidt
>
> f.eks
> #!/bin/sh
> cp $1 bar
>
> Hmm det var vidst det. Så kan du køre "<scriptnavn> foo"

Hmm kan jeg så bare kalde det script inde fra mit oprindelig script ?

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Peter Makholm (12-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 12-04-04 09:48

"Martin Johansen [6000]" <visit_my@website.invalid> writes:

> Kunne man sætte en eller anden form for variable i scriptet, så jeg
> istedet for 'cp foo bar' bare kunne skrive 'cp foo' ?

Du kan lave en funktion:

function mycp() {
cp $1 bar
}

Den kan så kaldes med

mycp foo


Hvordan genererer du listen af filer der skal kopieres? Hvis du har en
komando der genererer fillisten kunne du lave en:

gen_filelist | xargs -ri cp {} bar

eller med GNU-cp

gen_filelist | xargs -r cp --target-directory bar

--
Peter Makholm | Yes, you can fight it, but in the end the ultimate
peter@makholm.net | goal of life is to have fun
http://hacking.dk | -- Linus Torvalds

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 10:06

On Mon, 12 Apr 2004 10:47:30 +0200, Peter Makholm wrote:

> Hvordan genererer du listen af filer der skal kopieres? Hvis du har en
> komando der genererer fillisten kunne du lave en:

Det er dette script:

http://tuxx.dk/filer/backup.portrica.sh

Det er jo så herresimpelt som noget kan være men desværre også noget
bøvl, at vedligeholde, hvis jeg fx. skal ændre det bibliotek, som
filerne kopieres til.

Her var det jeg gerne ville enten 1. Skrive det hele i en simpel køre
eller 2. Få destination-dir sat "fast" så jeg ikke behøver skrive den
ved hver linie.

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Peter Makholm (12-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 12-04-04 10:16

"Martin Johansen [6000]" <visit_my@website.invalid> writes:

> Det er dette script:
>
> http://tuxx.dk/filer/backup.portrica.sh

Personligt ville jeg nok overveje følgende:

cat <<EOL | xargs cp -Rpu --target-dir /somewhere
/etc/fil1
/etc/fil2
/home/bruger1/.fil1rc
/home/bruger1/.fil2rc
EOL

Eller også lave en mycp() funktion som jeg beskrev før.

--
Peter Makholm | Wisdom has two parts:
peter@makholm.net | 1) having a lot to say, and
http://hacking.dk | 2) not saying it

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 10:21

On Mon, 12 Apr 2004 11:16:03 +0200, Peter Makholm wrote:

> "Martin Johansen [6000]" <visit_my@website.invalid> writes:
>
>> Det er dette script:
>>
>> http://tuxx.dk/filer/backup.portrica.sh
>
> Personligt ville jeg nok overveje følgende:
>
> cat <<EOL | xargs cp -Rpu --target-dir /somewhere /etc/fil1
> /etc/fil2
> /home/bruger1/.fil1rc
> /home/bruger1/.fil2rc
> EOL
>
> Eller også lave en mycp() funktion som jeg beskrev før.

Okay tak, det vil jeg prøve, at rode videre med!

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Peter Makholm (12-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 12-04-04 10:28

Peter Makholm <peter@makholm.net> writes:

> cat <<EOL | xargs cp -Rpu --target-dir /somewhere
> /etc/fil1
> /etc/fil2
> /home/bruger1/.fil1rc
> /home/bruger1/.fil2rc
> EOL

Og så må jeg hellere tildele mig en 'useles use of cat award' Det er
selvfølgelig helt unødvendigt at bruge cat her. Følgende er lige så
godt:

xargs cp -Rpu --target-dir /somewhere <<EOL
/etc/fil1
/etc/fil2
/home/bruger1/.fil1rc
/home/bruger1/.fil2rc
EOL

--
Peter Makholm | There are 10 kinds of people. Those who count in
peter@makholm.net | binary and those who don't
http://hacking.dk |

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 10:32

On Mon, 12 Apr 2004 11:28:12 +0200, Peter Makholm wrote:

> Og så må jeg hellere tildele mig en 'useles use of cat award' Det er

Hehe

> selvfølgelig helt unødvendigt at bruge cat her. Følgende er lige så
> godt:
>
> xargs cp -Rpu --target-dir /somewhere <<EOL /etc/fil1
> /etc/fil2
> /home/bruger1/.fil1rc
> /home/bruger1/.fil2rc
> EOL

Den vil jeg gemme. Indtil videre fungerer din funktion perfekt!

Kan man i samme command skrive flere filer der skal kopieres eller skal
hver enkelt deles op på linie?

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Peter Makholm (12-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 12-04-04 11:31

"Martin Johansen [6000]" <visit_my@website.invalid> writes:

> Kan man i samme command skrive flere filer der skal kopieres eller skal
> hver enkelt deles op på linie?

Ikke hvis du bruger min funktion direkte. Så skal den lige ændres en
lille smule:

function mycp() {
cp "$@" bar
}

Så kan man skrive

mycp foo baz quux xyzzy plugh

og få alle filerne kopieret ind i bar.

--
Peter Makholm | The four letter word beginning with L?
peter@makholm.net | It's life, love, libc or lisp
http://hacking.dk | -- Depending on you point of view

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 11:59

On Mon, 12 Apr 2004 12:30:43 +0200, Peter Makholm wrote:

> Ikke hvis du bruger min funktion direkte. Så skal den lige ændres en
> lille smule:
>
> function mycp() {
> cp "$@" bar
> }
> }
> Så kan man skrive

Den sidste "tuborg" har jeg været nødsaget til, at fjerne da den melder
fejl ellers.

> mycp foo baz quux xyzzy plugh
>
> og få alle filerne kopieret ind i bar.

Genialt! Jeg gætter på det også gælder mapper?

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 12:06

On Mon, 12 Apr 2004 12:58:58 +0200, Martin Johansen [6000] wrote:

> Genialt! Jeg gætter på det også gælder mapper?

Og det gør det

Det fungerer bare perfekt!

Du skal have mange tak for hjælpen Peter!

Drevet af nysgerrighed, hvor man man læse mere om "programmering" af
sådanne scripts?

Jeg havde engang et hæfte omkring .bat-filer. Findes tilsvarende til
bash-scripts?

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Mikkel Bundgaard (12-04-2004)
Kommentar
Fra : Mikkel Bundgaard


Dato : 12-04-04 12:20

On Mon, 12 Apr 2004 13:06:16 +0200, Martin Johansen [6000] wrote:

> Drevet af nysgerrighed, hvor man man læse mere om "programmering" af
> sådanne scripts?
Her er et par engelske referencer.

BASH Programming - Introduction HOW-TO
http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Advanced Bash-Scripting Guide
http://www.tldp.org/guides.html#abs

Ellers findes der "Linux - Friheden til at vælge...", som Peter er med til
at redigere (svjh. indeholder unix bogen lidt om shell scripts).
http://www.linuxbog.dk/
--
Mikkel Bundgaard
Ph.D. student at IT University of Copenhagen
http://www.itu.dk/people/mikkelbu/
Codito, Ergo Sum

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 16:13

On Mon, 12 Apr 2004 13:20:23 +0200, Mikkel Bundgaard wrote:

> Her er et par engelske referencer.
>
> BASH Programming - Introduction HOW-TO
> http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
>
> Advanced Bash-Scripting Guide
> http://www.tldp.org/guides.html#abs

Great, lige hvad jeg manglede! Tak for det

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Jens Andersen (12-04-2004)
Kommentar
Fra : Jens Andersen


Dato : 12-04-04 12:35

"Martin Johansen [6000]" <visit_my@website.invalid> writes:

> On Mon, 12 Apr 2004 12:58:58 +0200, Martin Johansen [6000] wrote:
>
> Drevet af nysgerrighed, hvor man man læse mere om "programmering" af
> sådanne scripts?

Der er en udmærket guide her:

http://freealter.org/doc_distrib/bash-2.04/abs-0.4/

--
Mvh. Jens Andersen,
Registered Linux user #293986, http://counter.li.org

Martin Johansen [600~ (12-04-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 12-04-04 16:14

On Mon, 12 Apr 2004 13:35:01 +0200, Jens Andersen wrote:

> Der er en udmærket guide her:
>
> http://freealter.org/doc_distrib/bash-2.04/abs-0.4/

Tak!

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Mandrake Linux 9.2 med Fluxbox 0.9.6devel
Registered Linux User # 301406 (http://counter.li.org)


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste