![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| læsning XML oplysningerne via Shell Script | freepal | Shell Programmering og Scripting | 1 | 02-08-2008 11:52 AM |
| Shell Script - problem læsning backslash (\)! | rossi143 | Shell Programmering og Scripting | 2 | 04-04-2007 03:52 AM |
| læsning kommando output fra shell script | Sri b | Shell Programmering og Scripting | 4 | 11-16-2006 12:52 AM |
| Hjælp: Fejl ved læsning fra stdin | zhshqzyc | Højtstående Programmering | 5 | 09-25-2006 04:58 PM |
| Læsning af en tabel i et shell script | luiscarvalheiro | Shell Programmering og Scripting | 13 | 08-10-2006 07:16 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
læsning fra stdin i et shell script
Hej,
Jeg har formået at få min. Procmailrc fil til at arbejde. Mindst det udløser et script, der opretter en fil. Men filen er tom. Hvordan får jeg fat på de data, der har været ledningsnet? Jeg har gjort meget kreative googling til ingen nytte. Jeg Tro det bør være i stdin, men jeg kan ikke finde ud af, hvordan man får det. Tak Mike |
|
||||
|
Takket Zaxxon,
Jeg havde prøvet variationer af det. Jeg har egentlig ikke noget at skrive, fordi jeg blev stukket i begyndelsen. Viser sig, at problemet er med min forståelse af procmail siden din kode virker fint, hvis jeg røret til mit script fra en anden skrift. Her er den procmailrc hvis nogen har nogen viden om det her: : 0 b | $ HOME / test.sh Min forståelse er, at dette bør rør selve e-mailen til scriptet test.sh. Som det ser ud lige nu, scriptet er udløst, men der synes ikke at være noget via rørledninger. Jeg har brugt dit forslag i et script der hedder "test.sh": mens læse LINE; gøre echo $ (linje)> t.log gjort exit 0 hvis jeg skrive et lille script, der siger: echo "test" gemme det som t.sh og køre det på kommando linje som denne: . / t.sh |. / test.sh derefter filen t.log er oprettet og indeholder linjen: test Hvis jeg sender en email til denne postkasse scriptet test.sh udløses men filen t.log indeholder kun en tom linje. Det er når jeg er på, og jeg er klar over dette er ikke en procmail forum, men helst hjælp vil blive værdsat. |
|
||||
|
holde det simple folk .. Code:
#!/bin/sh # Converts all lowercase text from # stdin to uppercase # tr '[:lower:]' '[:upper:]' < /dev/stdin # edward # ebaddouh@gmail.com du skal kalde dit script som følger: Code:
$ echo "keep it simple" | myscript.sh KEEP IT SIMPLE skål |
|
|||||
|
Prøv næste cmdline, script opkalds indstille produktionen, script kun læse fra stdin og skriver til stdout. Code:
| $HOME/myscript.sh > $HOME/my.log Og myscript.sh, herunder også hvordan man ex. at sætte store bogstaver uden ekstern kommando (ex. tr). Heller ikke behov for at fortælle input, hvis det er stdin. Code:
#!/usr/bin/ksh
typeset -u input
while read input
do
print "$input"
# if you like to add line to some file, then
# print some >> somefile
# single > is overwrite = file include only the lastline
done
Men hvis du har lyst til at lægge alle, mens output til fil så>> skal være efter ske \u003d udgang, mens cmd. Code:
while read line
do
print some
done >> outfile
# or ex. done | outpipecmd > outfile
# all output, which are done between do-done goto outfile
Script er mere generisk, hvis scriptet læse fra stdin og skrive til sdtout. Opkalds at definere for input og output. Hele idéen med * nix systemer / kommandoer - io-omdirigering og rør. |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|