Shell script et java paramètre
J'ai écrit le script run.sh ci-dessous pour l'appel d'une classe java :
java -cp . Main $1 $2 $3 $4
Voici ma classe java (il affiche juste le args) :
public class Main {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
}
C'est de travailler, à moins que j'essaie de passer un paramètre qui contient un espace. Par exemple :
./run.sh This is "a test"
affiche :
This
is
a
test
Comment pourrais-je modifier mon script shell et/ou de changer ma syntaxe du paramètre à transmettre le paramètre "un test" non modifiée ?
OriginalL'auteur Arnaud | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
Comme ceci:
wiki.bash-hackers.org/syntax/shellvars#special_parameters
Selon l'oms?
Pardon, je vois, je suis mal.
OriginalL'auteur Ignacio Vazquez-Abrams
Vous avez pour masquer tous les paramètres dans le script ainsi:
Maintenant paramètre 4 doit être vide, et $3 devrait être un "test".
Pour vérifier, essayez de:
et de l'appeler
Oh, je vois, mon test n'était pas exacte. Je pensais que le "$@" consommer le masquage, après avoir vu la sortie de mon test, mais je suppose que c'est la dernière écho, ce qui consomme de la cite, tout comme le programme Java.
OriginalL'auteur user unknown