The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Qu'est-ce que la commande à savoir la longueur d'un enregistrement d'un fichier de longueur fixe? tranq01 UNIX pour les nuls Questions et réponses 9 12-04-2008 04:04 PM
Debian: New yarssr packages fix arbitraire commande shell iBot Avis de sécurité (RSS) 0 01-28-2008 10:20 AM
quelle est la longueur maximale des e-os en ligne de commande Unix. kumardesai UNIX pour les nuls Questions et réponses 2 11-28-2007 07:37 AM
Comment prenez-vous dans les variables / paramètres de la ligne de commande? avisram UNIX pour les nuls Questions et réponses 1 07-21-2005 10:47 AM
passage de la ligne de commande à des fonctions - sh vino De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 11-19-2007
cmcnorgan cmcnorgan is offline
Registered User
  
 

Join Date: Nov 2007
Lieu: London, Ontario, Canada
Messages: 2
Construction de la ligne de commande paramètres de longueur arbitraire

Je ne pouvais pas trouver un fil qui traite de cette question, nous l'espérons de cette manière n'est pas redondant avec tout ce précédemment affichée. Ici va:

Je suis en train d'écrire un C-shell script qui lance un programme qui prend un nombre arbitraire de paramètres:

myprog un file1 \
fichier2-b \
fichier3-c ... \
-n filen \
-operation "a + b + c +...+ n"


Les dossiers sur lesquels opère myprog sont en sous-répertoires: 01/01.ext, 02/02.ext, ... etc

Étant donné que les noms de fichiers se faire correspondre les noms de répertoire, je voudrais être en mesure de passer le script d'un nombre arbitraire de répertoires (dans la pratique, il y aura moins de 26, il n'ya donc pas de souci à court de "x" tags ). Le script serait alors de construire la liste des arguments de façon à ce que myprog
myscript.sh 01 02 03 ... 12
se développer dans:
myprog-a 01/01.ext-b 02/02.ext ... 11/11.ext-k-l 12/12.ext \
-operation "a + b + c +...+ k + l"


Yat-il un moyen simple de faire cela?
  #2 (permalink)  
Old 11-19-2007
Smiling Dragon's Avatar
Souriant Dragon Smiling Dragon is offline Forum Advisor  
Désordonné utilisateur
  
 

Join Date: Nov 2007
Lieu: Nouvelle-Zélande
Messages: 922
Post

non testé mais il devrait très proche de vous
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  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4315
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)
}'
Usage: "scriptname 5" au lieu de "scriptname 01 ... 05".

Une valeur suffisante.

Observe
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 08:02 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0