The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Was den Befehl, um die Länge von einer festen Länge-Datei? tranq01 UNIX for Dummies Questions & Answers 9 12-04-2008 04:04 PM
Debian: Neue yarssr Pakete beheben beliebige Shell-Befehl iBot Security Advisories (RSS) 0 01-28-2008 10:20 AM
Wie hoch ist die maximale Länge von th os-Befehlszeile in Unix. kumardesai UNIX for Dummies Questions & Answers 2 11-28-2007 07:37 AM
Wie kann man in Variablen / Parameter von der Kommandozeile aus? avisram UNIX for Dummies Questions & Answers 1 07-21-2005 10:47 AM
Weitergabe Kommandozeilen-Parameter zu Funktionen - sh vino Shell Programmierung und 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-19-2007
cmcnorgan cmcnorgan is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Ort: London, Ontario, Kanada
Beiträge: 2
Gebäude Befehlszeilenparameter beliebiger Länge

Ich konnte sie nicht finden eine vorhandene Threads, die sich mit dieser Frage, so dass hoffentlich ist dies nicht redundant mit etwas vorher gebucht. Hier geht:

Ich schreibe eine C-Shell-Skript, das ein Programm, welches eine beliebige Anzahl von Parametern:

myprog Datei1-a \
-b Datei2 \
-c datei3 ... \
filen-n \
-Operation "a + b + c +...+ n"


Die Dateien, auf die myprog betreibt in Unterverzeichnisse: 01/01.ext, 02/02.ext, ... usw.

Da die Dateinamen geschehen, um die Verzeichnis-Namen möchte ich in der Lage, um das Skript eine beliebige Anzahl von Verzeichnissen (in der Praxis wird es weniger als 26, so gibt es keine Bedenken mit fließendem aus "-x"-Tags ). Das Skript würde dann konstruieren, das Argument für myprog, so dass
myscript.sh 01 02 03 ... 12
würde in:
myprog 01/01.ext-a-b 02/02.ext ... 11/11.ext-k-l 12/12.ext \
-Operation "a + b + c +...+ k + l"


Gibt es einen einfachen Weg, dies zu tun?
  #2 (permalink)  
Old 11-19-2007
Smiling Dragon's Avatar
Smiling Dragon Smiling Dragon is offline Forum Advisor  
Unorganisiert User
  
 

Join Date: Nov 2007
Ort: Neuseeland
Beiträge: 922
Post

getestet, aber es sollte Ihnen sehr nahe
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 online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4312
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)
}'
Verwendung: "Skriptname 5" anstelle von "Skriptname 01 ... 05".

Ein Wert aus.

Grüße
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 12:56 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0