The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Wat de opdracht om uit te vinden het record lengte van een vaste lengte bestand? tranq01 UNIX voor Dummies Questions & Answers 9 12-04-2008 04:04 PM
Debian: New yarssr pakketten fix willekeurige shell commando iBot Security Advisories (RSS) 0 01-28-2008 10:20
wat is de maximale lengte van th os-opdrachtregel in Unix. kumardesai UNIX voor Dummies Questions & Answers 2 11-28-2007 07:37
Hoe neemt u in variabelen / parameters vanaf de opdrachtregel? avisram UNIX voor Dummies Questions & Answers 1 07-21-2005 09:47
het passeren van command line parameters aan functies - sh vino Programmeren en Shell Scripting 5 03-05-2005 05:51 PM

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-19-2007
cmcnorgan cmcnorgan is offline
Geregistreerde gebruiker
  
 

Join Date: november 2007
Locatie: London, Ontario, Canada
Posten: 2
Bouwen opdrachtregelparameters van willekeurige lengte

Ik kon het niet vinden van een bestaande draad dat deze kwestie aangepakt, dus hopelijk is dit niet overbodig met iets eerder gepost. Hier gaat:

Ik ben het schrijven van een C-Shell-script dat een programma dat een willekeurig aantal parameters luidt:

myprog-a file1 \
-b file2 \
bestand3-c ... \
-n filen \
-operatie "a + b + c +...+ n"


De bestanden op die myprog actief zijn in submappen: 01/01.ext, 02/02.ext, ... enz.

Aangezien de bestandsnamen gebeuren naar de directory namen wedstrijd, wil ik kunnen het script een willekeurig aantal mappen passeren (in de praktijk, zal er minder dan 26, er is dus geen zorg met stromend uit "-x" tags ). Het script zou dan bouwen de lijst met argumenten voor myprog zodat
myscript.sh 01 02 03 ... 12
zou uitbreiden naar:
myprog-a 01/01.ext-b 02/02.ext ... 11/11.ext-k-l 12/12.ext \
-operatie "a + b + c +...+ k + l"


Is er een eenvoudige manier om dit te doen?
  #2 (permalink)  
Old 11-19-2007
Smiling Dragon's Avatar
Lachend Dragon Smiling Dragon is offline Forum Advisor  
Ongeorganiseerd Gebruiker
  
 

Join Date: november 2007
Locatie: Nieuw-Zeeland
Posts: 922
Post

niet getest maar het zou mooi krijg je dicht
Code:
#!/bin/sh
if [ $# -gt 26 ]
then
   echo "Too many args!"
   exit 1
fi

letters="a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z"
cli="myprog"
count=1
operation=""
for argument in $*
do
   count=`expr $count + 1`
   letter=`echo $letters | head +$count | tail -1`
   cli="$cli -$letter ${argument}/${argument}.ext"
   if [ -z "$operation" ]
   then
      operation=$letter
   else
      operation="${operation}+${letter}"
   fi
done
cli="$cli -operation \"$operation\""
$cli
  #3 (permalink)  
Old 11-20-2007
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.302
Code:
#!/bin/sh

echo $1 |
awk 'BEGIN {
n="abcdefghijklmnopqrstuvwxyz"
printf("myprog")}
{ for (i=1;i<=$0;i++) {
  printf(" -%s %02d/%02d.ext", substr(n,i,1), i, i)
  op=op substr(n,i,1)"+"
  }
  op=substr(op,1,length(op)-1)
  printf(" -operation \"%s\"\n",op)
}'
Gebruik: "scriptnaam 5" in plaats van "scriptnaam 01 ... 05".

Een waarde volstaan.

Groeten
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 10:09 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0