web-dev-qa-db-fra.com

Écrire des scripts avec des arguments?

Je veux écrire un script shell qui prend un argument, puis l’applique aux fichiers.

Plus précisément, je veux donner un terme, puis le compiler avec mxmlc ("mxmlc term.as"), puis lancer term.swf avec flashplayerdebugger ("flashplayerdebugger term.swf"). Je suis assez nouveau dans les scripts Shell - des idées?

11

Vous pouvez utiliser quelque chose comme ceci:

#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc $NAME.as
flashplayerdebugger $NAME.swf
19
Dawid

Je vous recommande également d'utiliser le délimiteur de nom de variable. Donc, le code ressemblerait à ceci:

#!/bin/sh
# $0 is the script name, $1 id the first ARG, $2 is second...
NAME="$1"
mxmlc ${NAME}.as
flashplayerdebugger ${NAME}.sw

Cela permet d'utiliser la variable dans n'importe quel contexte, même à l'intérieur d'un autre texte. Par exemple:

NewName="myFileIs${NAME}and that is all"

Cela élargirait la variable NAME qui serait flanquée devant par "myFileIs" et à l'arrière par "et c'est tout" La variable se développerait, espaces compris, à l'intérieur de la chaîne. si NAME était "à l'intérieur ici", le NewName serait "myFileIsinside hereandand is all all".

La ligne de commande peut prendre jusqu'à 9 variables. Il peut s’agir de chaînes entre guillemets contenant des blancs, chaque chaîne étant considérée comme une variable. Tel que:

./myProg var1 var 2 var3

Alors ${1} est "var1", ${2} est "var", ${3} est "2", ${4} est "var3"

MAIS: ./myProg var1 "var 2" var3

a ${1} est "var1", ${2} est "var 2", ${3} est "var3"

S'amuser!

4
Hey Gary