The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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
Hjælp hvordan erstatte stardard tastatur input af argumenter på køre tiden af et script Dingrong UNIX for dummyer Spørgsmål & svar 6 10-14-2008 04:46 AM
Hjælp i forbifarten vifte af indgange til C-program ved hjælp af script? ahjiefreak Shell Programmering og Scripting 1 03-20-2008 07:36 AM
Passing blank argumenter til et script rm-r UNIX for Advanced & Ekspertsøgning Brugere 7 01-08-2008 08:56 PM
Shell script med argumenter sankar6254 Shell Programmering og Scripting 3 12-22-2003 09:21 AM
Passing argumenter for et script Kevin Pryke Shell Programmering og Scripting 3 06-14-2002 10:06 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-17-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Beliggenhed: Diverse
Posts: 188
Question bruge flere indgange som argumenter i mit script

Hej!
Det er temmelig svært for mig at forklare mit problem, da jeg affraid Jeg bruger ikke de korrekte ordforråd. Så lad mig beskrive situationen. Jeg skrev et manuskript, der har ét argument. Det fungerer på følgende måde:
Code:
~$ cat /usr/local/bin/squote
echo "$@" | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
~$ squote It\'s great
'It'\''s great'
Hvad skal jeg gøre, hvis jeg vil have mine script til at arbejde i følgende situation?
Code:
~$ echo It\'s great | squote
''
~$ cat file | squote
''
~$ squote < file
''
Thanks in advance
Santiago

Update:
Nu konstaterede jeg, at jeg kan læse fra / dev / stdin. Jeg skrev følgende script:
Code:
~$ cat /usr/local/bin/squote
cat /dev/stdin | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
echo "$@" | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
~$ echo It\'s great | squote
'It'\''s great'
''
~$ squote It\'s great
# I need to press Ctrl+D
'It'\''s great'
Hvordan kan jeg vide, fra hvilke input argumentet kommer?

Sidst redigeret af chebarbudo; 11-17-2008 på 10:15 PM.. Årsag: fandt en del af svaret
  #2 (permalink)  
Old 11-18-2008
Christoph Spohr Christoph Spohr is offline
Registreret Bruger
  
 

Join Date: Sep 2008
Posts: 205
Du kan teste, hvis scriptet blev kaldt med et argument:

[[-Z "$ @"]] & & printf "No input \ n" | | printf "Input:% q \ n" "$ @"

Hvilket betyder: hvis længden af argumenterne ($ @) er nul (-z) derefter udskrive "No input« ellers udskriver strengen i undsluppet form. Jeg ved ikke ikke, hvad du vil opnå, men hvis du forsøger at undslippe strings, tjekke% q muligheden for printf.

Hvis du kalder testscript denne måde:

testscript "h's m"

Det vil give dig:

Input: h \ 's \ m
  #3 (permalink)  
Old 11-22-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Beliggenhed: Diverse
Posts: 188
Thx Christoph,
Selv printf er en langt bedre funktion for mit script, behøver du ikke svar på alle til mit problem. Hvad jeg behøver, er en måde at gøre script arbejde i følgende situation:
Code:
~# cat /usr/local/bin/squote
[[ -z "$@" ]] && printf "No input\n" || printf "Input: %q\n" "$@"
~# echo "h's m" | squote
No input
Closed Thread

Bogmærker

Tags
argumenter, input

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:02 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0