/ 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
Script der tager et argument?
Fra : Paminu


Dato : 25-12-05 11:51

Er det muligt at lave et script som når man kører det tager et argument (fx
filnavn) og bruger det i udførelsen af scriptet?

Havde tænkte på noget i stil med:

myscript test.ex

i scriptet skal der så udføres:

../MC test

som producere en test.as fil. Dernæst skal der udføres:

masm test.as

som producere en test.hex fil. Dernæst skal der udføres:

mips test.hex 0


Er det muligt at automatisere disse operationer med et script eller er det
nemmere at lave et lille java program?

 
 
Soren (News) (25-12-2005)
Kommentar
Fra : Soren (News)


Dato : 25-12-05 12:22

Paminu <dfsdf@asd.com> writes:

> Er det muligt at lave et script som når man kører det tager et argument (fx
> filnavn) og bruger det i udførelsen af scriptet?
[snip]

Ja, det er muligt.

$1 er det foerste argument. "man bash" og scroll ned til afsnittet om
Parameter Expansion, saa skulle du gerne faa en ide om hvordan du kan faa
$1 omsat til de forskellige filnavne.

Mvh,
Soren

Paminu (25-12-2005)
Kommentar
Fra : Paminu


Dato : 25-12-05 16:31

Soren (News wrote:

> Paminu <dfsdf@asd.com> writes:
>
>> Er det muligt at lave et script som når man kører det tager et argument
>> (fx filnavn) og bruger det i udførelsen af scriptet?
> [snip]
>
> Ja, det er muligt.
>
> $1 er det foerste argument. "man bash" og scroll ned til afsnittet om
> Parameter Expansion, saa skulle du gerne faa en ide om hvordan du kan faa
> $1 omsat til de forskellige filnavne.
>
> Mvh,
> Soren


Nu har jeg lavet en eksekverbar fil der hedder "min" som indeholder (hvor MC
er det program der tager $1 (en test.m fil) som argument og producere en
test.as fil):

#!/bin/sh
../MC $1

masm ${1/.m/.as}

Men det kører ikke helt. Ideen er at masm skal tage den fil (.as) som MC
producere.

Jeg har forsøgt at tyde det som står i man bash om :
Parameter Expansion -> ${parameter//pattern/string} men kan ikke helt få det
til at du.

Soren (News) (25-12-2005)
Kommentar
Fra : Soren (News)


Dato : 25-12-05 18:09

Paminu <dfsdf@asd.com> writes:

> Nu har jeg lavet en eksekverbar fil der hedder "min" som indeholder (hvor MC
> er det program der tager $1 (en test.m fil) som argument og producere en
> test.as fil):
>
> #!/bin/sh
> ./MC $1
>
> masm ${1/.m/.as}
>
> Men det kører ikke helt. Ideen er at masm skal tage den fil (.as) som MC
> producere.

Hvad er det der ikke fungerer?

--
#!/bin/bash

echo $1
echo ${1/.m/.as}
--

Kaldes den med hello.m som foerste argument, saa producerer den output:

--
hello.m
hello.as
--

Tjek hvad din /bin/sh er linket op mod, mit eksempel bruger bash.

Mvh,
Soren

js (03-01-2006)
Kommentar
Fra : js


Dato : 03-01-06 12:29

Soren (News wrote:

> Paminu <dfsdf@asd.com> writes:
>
>> Nu har jeg lavet en eksekverbar fil der hedder "min" som indeholder (hvor
>> MC er det program der tager $1 (en test.m fil) som argument og producere
>> en test.as fil):
>>
>> #!/bin/sh
>> ./MC $1
>>
>> masm ${1/.m/.as}
>>
>> Men det kører ikke helt. Ideen er at masm skal tage den fil (.as) som MC
>> producere.
>
> Hvad er det der ikke fungerer?
>
> --
> #!/bin/bash
>
> echo $1
> echo ${1/.m/.as}
> --
>
> Kaldes den med hello.m som foerste argument, saa producerer den output:
>
> --
> hello.m
> hello.as
> --
>
> Tjek hvad din /bin/sh er linket op mod, mit eksempel bruger bash.
>
> Mvh,
> Soren


../MC $1

denne operation udføres korrekt og der laves en .as fil.

dernæst vil jeg gerne kører masm på denne .as fil. Problemet er at nu ligger
der både en test.m og en test.as fil. Hvordan specificere man at masm skal
køres på den som ender på .as?

Ukendt (25-12-2005)
Kommentar
Fra : Ukendt


Dato : 25-12-05 22:33

Paminu wrote:
>
> #!/bin/sh
> ./MC $1
>
> masm ${1/.m/.as}

Det burde virke så længe der ikke er specielle tegn
i parameteren (f.eks. mellemrum). Anførselstegn
omkring ville løse problemet med mellemrum. Prøv at
sætte nogle echo kommandoer ind for at se, om de giver
et fingerpeg om årsagen.

#!/bin/sh
echo ./MC "$1"

echo masm "${1/.m/.as}"

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Jacob Bunk Nielsen (27-12-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 27-12-05 18:49

Paminu <dfsdf@asd.com> writes:

> Er det muligt at lave et script som når man kører det tager et argument (fx
> filnavn) og bruger det i udførelsen af scriptet?

Ja, men det lyder som om du i virkeligheden har brug for make.

--
Jacob - www.bunk.cc
You never get a second chance to make a first impression.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste