2015-04-24 1 views
1

J'utilise le script shell suivant pour envoyer un email. Mais le sujet de l'email montre toujours "ceci" au lieu de "This is L_1.R".'mutt' n'a pas de sujet complet

program=("L_1" "L_2" "L_3" "L_4") 
    subject="The job is finished" 
    ssh -f c15-0330-01.ad.mtu.edu 'echo' "the job ${program[0]} is finished" '|' 'mutt "[email protected]" -s' "This is "${program[0]}".R"; 

Répondre

0

début D'abord avec ce que vous voulez que la commande à distance pour ressembler, avec un minimum nu citant:

echo the job L_1 is finished | mutt [email protected] -s 'This is L_1.R' 

Il y a seulement deux choses que vous devez citer les avoir transmis la lettre au shell distant: le caractère de pipe, et les citations autour du sujet pour faire les espaces ne le divisent pas en arguments séparés pour mutt.

program=("L_1" "L_2" "L_3" "L_4") 
subject="The job is finished" 
ssh -f c15-0330-01.ad.mtu.edu echo the job ${program[0]} is finished '|' mutt [email protected] -s "'"This is ${program[0]}.R"'"; 

Avec la commande plus, font la même chose:

cd $address && nohup Rscript ${program[0]}.R > ${program[0]}_sh.txt && echo the job ${program[0]} is finished | mutt [email protected] -s 'This is ${program[0]}.R' 

(uniquement avec les variables substituées).

Ici, quelques choses doivent être citées:

ssh -f c15-0330-01.ad.mtu.edu cd $address '&&' nohup Rscript ${program[0]}.R '>' ${program[0]}_sh.txt '&&' echo the job ${program[0]} is finished '|' mutt [email protected] -s "'"This is ${program[0]}.R"'" 
+0

Pourriez-vous m'aider à le faire proprement' ssh -f c15- 0330-01.ad.mtu.edu 'cd' "$ address" '&& nohup Rscript' "" $ {programme [0]} ". R" '>' "" $ {programme [0]} "_ sh.txt "'&&' 'echo'" le travail $ {programme [0]} est terminé "'| 'mutt "[email protected]" -s "Ceci est"' $ {programme [0]} '". R";' ' –

+0

bien sûr, essayez cela. – ysth

+0

'adresse ="/home/campus27/zwang10/Bureau/AWRR/programme/alimentation/vmodel_1/nprot/K_10 "' –

0

Déplacez votre guillemet simple.

ssh -f c15-0330-01.ad.mtu.edu 'echo' "the job ${program[0]} is finished" \ 
'|' 'mutt "[email protected]" -s "This is "'${program[0]}'".R";' 

EDIT: J'ai mis la variable hors des guillemets. L'essentiel est que les espaces soient couverts.

+0

Je l'ai essayé, mais il dit 'programme: Non défini variable.' La raison pour laquelle je ne mets pas de guillemets à l'intérieur de guillemets simples est que je ne peut pas définir de variable entre guillemets simples. –

+0

Je mets '\ n' dans' echo', mais ça ne marche pas. 'ssh -f $ {liste_hôte [0]} cd '"' $ adresse '' '' && 'nohup Rscript $ {programme [0]}. R'> '$ {programme [0]} _ sh.txt' && ' echo Le job $ address $ {program [0]} \ nest terminé '|' mutt [email protected] -s "'" $ {host_list [0]} - Job $ {programme [0]}. R terminé "'"; ' –