← Back to team overview

sslug-teknik team mailing list archive

Re: bash script

 

Per Jørgensen wrote:
> 
> hey alle
> 
> hvordan skal man dele følgene linje hvis man skal bruge den i et bash script ?
> 
> a=`grep "Target" ./mrtg.cfg | sed s/\^Target\\[// | sed s/\\].*$// |wc -l`
> 
> jeg ved at der skal bruges nogle `` men jeg er ikke helt klar ovre hvornår
> man skal bruge `` iforhold til ´´ eller '' og "" , er der en der kan give
> mig en lille forklaring på hvornår man skal bruge hvad ? så kunne det være
> total lækkert

Der er flere måder at tildele variabler (eg. a som du selv har vist
her).

Normalt er "" til alm. tekst der ikke er dynamisk og '' er til tekst der
indeholder "" og `` kun til det output der kommer fra et program
(stdout) der skal køres først ~= det samme som dynamisk data.

Her er et eksempel (har ikke prøvet det, men det skulle virke!!!)

  #!/bin/sh
   
  #Tildel variabler deres værdier
  TEKST="En tekste streng"
  UserNAME="bin"

  #Hent userid fra /etc/password
  UserID=`cat /etc/passwd | grep $UserName | cut -d: -f 3'

  #Her skulle outputtet være til at regne ud. "Tekst er: En tekst
streng"
  echo "Tekst er: $TEKST"

  #Her skulle outputtet gerne være noget ligende
  #"UserID for hugo er: 1" (på rh62)
  echo "UserID for $UserNAME er: $UserID"


Hvis du tager din egen sætning ville jeg skrive ...sed 's,\^Target\\[//'
... for at undgå evt. problemmer med parsningen i sh/bash.

-- 
Bjarke Bruun - E-mail: bbj@xxxxxxxxx http://linux.hhknet.dk
   __
  / /  (_)__  __ ____  __
 / /__/ / _ \/ // /\ \/ /  . . .  t h e   c h o i c e   o f   a
/____/_/_//_/\_,_/ /_/\_\              G N U   g e n e r a t i o n . . .


References