J'ai un script Bash qui construit une chaîne pour l'exécuter en tant que commande
Script:
#! /bin/bash
matchdir="/home/joao/robocup/runner_workdir/matches/testmatch/"
teamAComm="`pwd`/a.sh"
teamBComm="`pwd`/b.sh"
include="`pwd`/server_official.conf"
serverbin='/usr/local/bin/rcssserver'
cd $matchdir
illcommando="$serverbin include='$include' server::team_l_start = '${teamAComm}' server::team_r_start = '${teamBComm}' CSVSaver::save='true' CSVSaver::filename = 'out.csv'"
echo "running: $illcommando"
# $illcommando > server-output.log 2> server-error.log
$illcommando
qui semble ne pas fournir correctement les arguments à $serverbin
.
Sortie du script :
running: /usr/local/bin/rcssserver include='/home/joao/robocup/runner_workdir/server_official.conf' server::team_l_start = '/home/joao/robocup/runner_workdir/a.sh' server::team_r_start = '/home/joao/robocup/runner_workdir/b.sh' CSVSaver::save='true' CSVSaver::filename = 'out.csv'
rcssserver-14.0.1
Droits d'auteur (C) 1995, 1996, 1997, 1998, 1999 Laboratoire électrotechnique.
2000 - 2009 Groupe de maintenance du simulateur de soccer RoboCup.
Utilisation: /usr/local/bin/rcssserver [[-[-]]namespace::option=value]
[[-[-]][namespace::]help]
[[-[-]]include=file]
Options:
help
afficher l'aide générique
include=file
analyser le fichier de configuration spécifié. Les fichiers de configuration
ont le même format que les options de ligne de commande. Le
fichier de configuration spécifié sera analysé avant toutes les
options suivantes.
serveur::help
afficher l'aide détaillée pour le module "serveur"
joueur::help
afficher l'aide détaillée pour le module "joueur"
CSVSaver::help
afficher l'aide détaillée pour le module "CSVSaver"
Options de CSVSaver:
CSVSaver::save=
Si save est on/vrai, alors le sauvegardant tentera de sauvegarder les
résultats dans la base de données. Sinon, il ne fera rien.
valeur actuelle: false
CSVSaver::filename=''
Le fichier où sauvegarder les résultats. Si ce fichier n'existe pas
il sera créé. Si le fichier existe déjà, les résultats
seront ajoutés à la fin.
valeur actuelle: 'out.csv'
si je colle simplement la commande /usr/local/bin/rcssserver include='/home/joao/robocup/runner_workdir/server_official.conf' server::team_l_start = '/home/joao/robocup/runner_workdir/a.sh' server::team_r_start = '/home/joao/robocup/runner_workdir/b.sh' CSVSaver::save='true' CSVSaver::filename = 'out.csv'
(dans la sortie après "running: ") ça fonctionne bien.
0 votes
Parce que mywiki.wooledge.org/BashFAQ/050
0 votes
Notez que dans certains cas, vous devez faire :
echo | whateverCommands
au lieu de simplementwhateverCommands
(par exemple, j'ai dû le faire comme ceci :| tail -`echo | whateverCommands`
)