/ 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
Bash script - string kommandoer ?
Fra : Lars P. Magnussen


Dato : 25-07-06 09:38

System Debian Sarge, bash

Jeg ønsker at gemme en år-ugekode streng i en fil for senere at kunne bruge
til at danne en sti.

WeekNr=$(date +%Y%V)
echo $WeekNr > $WeekF
# Læs strengen
read WeekNrFromFile < $WeekF
# Så langt virker det

Nu vil jeg så godt checke at strengen har rigtig længde og også checke nogle
at karaktererne.
På div. web sider om bash har jeg set beskrivelse af strengbehandling, fx.
dette, men det virker ikke (giver fejlmelding).

str=test
# længde af streng
echo $(#str) # giver en tom linie

#uddrag en substring
echo $(#str:2) # giver en fejl - line 1: str:2: command not found

Ud af de mange websider / bøger om bash, hvad kan anbefales ?


Mvh
Lars P. Magnussen





 
 
Mogens Kjaer (25-07-2006)
Kommentar
Fra : Mogens Kjaer


Dato : 25-07-06 10:16

Lars P. Magnussen wrote:

> echo $(#str) # giver en tom linie

Brug Tuborg

$ echo ${#str}
4

>
> #uddrag en substring
> echo $(#str:2) # giver en fejl - line 1: str:2: command not found

$ echo ${str:2}
st

Mogens

--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk

Rene Joergensen (25-07-2006)
Kommentar
Fra : Rene Joergensen


Dato : 25-07-06 10:19

Lars P. Magnussen <nix_spam_lpm@magnatek.nejtak> wrote:

> echo $(#str) # giver en tom linie

Som Mogens skriver, brug Tuborg istedet

> Ud af de mange websider / bøger om bash, hvad kan anbefales ?

man bash forklarede mig ihvertfald hvad din fejl var.

--
-René


Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 11:18

Den Tue, 25 Jul 2006 10:37:49 +0200 skrev Lars P. Magnussen:
>
> Nu vil jeg så godt checke at strengen har rigtig længde og også checke nogle
> at karaktererne.

Karakterer er noget man får i folkeskolen. "Characters" hedder "tegn"
på dansk - eller i dette tilfælde kan "cifre" bruges.

> På div. web sider om bash har jeg set beskrivelse af strengbehandling, fx.
> dette, men det virker ikke (giver fejlmelding).
>
> str=test
> # længde af streng
> echo $(#str) # giver en tom linie

Dem har du vist allerede fået svar på. Men når du også vil checke
tegnene, så vil jeg foreslå grep i stedet for. Så kan du checke både
længden og samtlige tegn på en gang, fx:

if echo "$WeekNr" | grep -qE "^20[0-9]{2}(0[1-9]|[1-4][0-9]|5[0-3])$"
then
echo ok
else
echo forkert
fi

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Lars P. Magnussen (25-07-2006)
Kommentar
Fra : Lars P. Magnussen


Dato : 25-07-06 12:55

>
> Karakterer er noget man får i folkeskolen. "Characters" hedder "tegn"
> på dansk - eller i dette tilfælde kan "cifre" bruges.
>
Ja, det er jo rart en gang imellem at bliver gjort opmærksom på hvordan man
får forplumret det dansle sprog ved at beskæftige sig med div. compilere
(som vel så hedder oversættere ?)

Mvh
Lars P. Magnussen




Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 20:19

Den Tue, 25 Jul 2006 13:54:34 +0200 skrev Lars P. Magnussen:
>>
>> Karakterer er noget man får i folkeskolen. "Characters" hedder "tegn"
>> på dansk - eller i dette tilfælde kan "cifre" bruges.
>>
> Ja, det er jo rart en gang imellem at bliver gjort opmærksom på hvordan man
> får forplumret det dansle sprog ved at beskæftige sig med div. compilere
> (som vel så hedder oversættere ?)

"Compiler" gør ikke noget, det er der ingen der bliver forvirret over.
Det er først når man begynder at bruge et ord der betyder noget helt
andet på dansk, at det går rigtig galt.

Er oversættere egentlig ikke sådan nogen der sidder med en bog
og en skrivemaskine?

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Klaus Alexander Seis~ (25-07-2006)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 25-07-06 14:11

Kent Friis skrev:

> if echo "$WeekNr" | grep -qE "^20[0-9]{2}(0[1-9]|[1-4][0-9]|5[0-3])$"
> then
> echo ok
> else
> echo forkert
> fi

Eller uden grep:

#v+

case "${UgeNr}" in
20[0-9][0-9]0[1-9] | 20[0-9][0-9][1-4][0-9] | 20[0-9][0-9]5[0-3] )
echo ok
;;
* )
echo forkert
;;
esac

#v-

Mvh,

--
Klaus Alexander Seistrup
Copenhagen, Denmark
http://pnx.dk/

Per Riber (25-07-2006)
Kommentar
Fra : Per Riber


Dato : 25-07-06 19:15

Kent Friis skrev:

> Dem har du vist allerede fået svar på. Men når du også vil checke
> tegnene, så vil jeg foreslå grep i stedet for. Så kan du checke både

En check er noget helt andet - tjek selv her:

http://www.dsn.dk/cgi-bin/ordbog/ronet?S.x=46&S.y=11&M=1&P=check

EOD

mvh Per

Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 20:22

Den Tue, 25 Jul 2006 20:15:26 +0200 skrev Per Riber:
> Kent Friis skrev:
>
>> Dem har du vist allerede fået svar på. Men når du også vil checke
>> tegnene, så vil jeg foreslå grep i stedet for. Så kan du checke både
>
> En check er noget helt andet - tjek selv her:

Men nu stod der jo ikke "check", men derimod "checke".

> http://www.dsn.dk/cgi-bin/ordbog/ronet?S.x=46&S.y=11&M=1&P=check

Den side nævner intet om "checke".

:-þ

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Andreas Plesner Jaco~ (26-07-2006)
Kommentar
Fra : Andreas Plesner Jaco~


Dato : 26-07-06 13:42

On 2006-07-25, Kent Friis <nospam@nospam.invalid> wrote:
>
>> http://www.dsn.dk/cgi-bin/ordbog/ronet?S.x=46&S.y=11&M=1&P=check
>
> Den side nævner intet om "checke".

Det er fordi man "tjekker" eller "kontrollerer"

FUT: dk.kultur.sprog (hvor jeg ikke deltager)

--
Andreas

Lars P. Magnussen (25-07-2006)
Kommentar
Fra : Lars P. Magnussen


Dato : 25-07-06 12:58

Tak for indlæggene.
Selv om jeg også har kigget i man bash, fandt jeg ikke tuborg, som altså kan
bruges til andet end at drikke i varmen

Mvh
Lars P. Magnussen



Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 20:21

Den Tue, 25 Jul 2006 13:57:34 +0200 skrev Lars P. Magnussen:
> Tak for indlæggene.
> Selv om jeg også har kigget i man bash, fandt jeg ikke tuborg, som altså kan
> bruges til andet end at drikke i varmen

BASH(1) BASH(1)

${#parameter}
The length in characters of the value of parameter
    is substituted. If parameter is * or @, the value
    substituted is the number of positional parameters.
    If parameter is an array name subscripted by * or
    @, the value substituted is the number of elements
    in the array.

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Christian E. Lysel (25-07-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 25-07-06 19:55

On Tue, 2006-07-25 at 10:37 +0200, Lars P. Magnussen wrote:
> Ud af de mange websider / bøger om bash, hvad kan anbefales ?

Læs "man bash" helt igennem 3 gange.

Det virkede for mig.


Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 20:23

Den Tue, 25 Jul 2006 20:54:40 +0200 skrev Christian E. Lysel:
> On Tue, 2006-07-25 at 10:37 +0200, Lars P. Magnussen wrote:
>> Ud af de mange websider / bøger om bash, hvad kan anbefales ?
>
> Læs "man bash" helt igennem 3 gange.

Er du gal mand. Jeg har ikke engang læst det hele endnu, selvom jeg
har rodet med *nix siden 1992 og Linux/Bash siden 1996.

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Christian E. Lysel (25-07-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 25-07-06 22:01

On Tue, 2006-07-25 at 19:23 +0000, Kent Friis wrote:
> Er du gal mand.

Nej, det tror jeg ikke.

Under mit studie, fandt jeg ud af det var en god
ide at læse op, da "den der shell" så meget praktisk ud.

Jeg har ikke fortrudt det siden.



Kent Friis (25-07-2006)
Kommentar
Fra : Kent Friis


Dato : 25-07-06 22:56

Den Tue, 25 Jul 2006 23:00:53 +0200 skrev Christian E. Lysel:
> On Tue, 2006-07-25 at 19:23 +0000, Kent Friis wrote:
>> Er du gal mand.
>
> Nej, det tror jeg ikke.
>
> Under mit studie, fandt jeg ud af det var en god
> ide at læse op, da "den der shell" så meget praktisk ud.
>
> Jeg har ikke fortrudt det siden.

Jeg klarer mig med "hmm, hvordan gør man nu lige det her... man bash,
søg".

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

ST (25-07-2006)
Kommentar
Fra : ST


Dato : 25-07-06 23:12

On Tue, 25 Jul 2006 21:56:13 +0000, Kent Friis wrote:

> Den Tue, 25 Jul 2006 23:00:53 +0200 skrev Christian E. Lysel:
>> On Tue, 2006-07-25 at 19:23 +0000, Kent Friis wrote:
>>> Er du gal mand.
>>
>> Nej, det tror jeg ikke.
>>
>> Under mit studie, fandt jeg ud af det var en god
>> ide at læse op, da "den der shell" så meget praktisk ud.
>>
>> Jeg har ikke fortrudt det siden.
>
> Jeg klarer mig med "hmm, hvordan gør man nu lige det her... man bash,
> søg".
>
> Mvh
> Kent

Tja, det kunne jo være rart hvis man bare lige kunne sætte sig og læse
alt det om PHP, Perl og Bash og så kunne man klare det.

Jeg tager det også som det kommer, visse opgaver er Perl scripts god til,
andre klare Bash scripts gode til.

Alt til sin tid, jeg bruger hverken Perl eller Bash i mit normale arbejde.
Jeg arbejder i en Windows dagligdag i et større dansk IT firma.

Mvh
Torben


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

Månedens bedste
Årets bedste
Sidste års bedste