2017-03-27 2 views
0

Je cours un script "example.sh" qui accepte 5 arguments de ligne de commande.Qsub conduit au script ne fonctionne pas: "Command not found"

Cela fonctionne très bien:

./example.sh arg1 arg2 arg3 arg4 arg5 

et retourne un fichier result1.txt

Maintenant, lorsque je tente de l'exécuter sur le cluster de SGE (avec ou sans "./"):

qsub ./example.sh arg1 arg2 arg3 arg4 arg5 

Ceci n'entraîne aucune sortie.

Dans le fichier example.sh.eXXXXXXX, je reçois:

arg1=1: Command not found. 
arg2=2: Command not found. 
... 
and so on. 

Je ne sais pas pourquoi il ne fonctionne pas avec la commande qsub. J'ai également inséré un

#!/usr/bin/env bash 

en haut de mon script. J'ai peaufiné des trucs pendant un moment, essayant différentes choses que j'ai trouvées sur stackoverflow et sur le web, mais pas de succès jusqu'ici (j'ai essayé les drapeaux -S et -F). Toutes les suggestions sont appréciées pour me diriger dans la bonne direction.

+0

Je ai un peu googlé et deux choses viennent à l'esprit: 1. Êtes-vous sûr que la grille du soleil fournit un «bash»? (J'ai vu beaucoup d'échantillons 'csh' La syntaxe de' csh' est un peu différente de celle de 'bash'.) 2. Je n'ai trouvé aucun exemple avec des arguments de ligne de commande supplémentaires qui me rendent suspect. L'entrée de l'homme 'qsub [options] [commande | - [command_args]] 'ressemble à savoir si cela n'est pas supporté. La solution est simple: enroulez votre script appel _with_ arguments dans un nouveau script. (Ce que je suggère ici, j'ai appris dans la dernière demi-heure.Si vous obtenez une réponse sérieuse, je vais effacer ce commentaire.) – Scheff

Répondre

0

qsub n'acceptera pas les arguments de script shell comme ça, mais l'un de ces travailleront:

1) Mettre ./example.sh arg1 arg2 arg3 arg4 arg5 dans un autre script, par exemple command.sh, puis exécutez qsub command.sh.

2) Pipe votre commande complète dans qsub comme entrée standard, par exemple: echo ./example.sh arg1 arg2 arg3 arg4 arg5 | qsub.