我使用以下shell脚本发送电子邮件。但电子邮件的主题始终显示“此”而不是"This is L_1.R"
。
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 "zwang10@mtu.edu" -s' "This is "${program[0]}".R";
答案 0 :(得分:0)
移动你的单引号。
ssh -f c15-0330-01.ad.mtu.edu 'echo' "the job ${program[0]} is finished" \
'|' 'mutt "zwang10@mtu.edu" -s "This is "'${program[0]}'".R";'
编辑:我把变量放在引号之外。主要是空间被覆盖。
答案 1 :(得分:0)
首先从你想要的远程命令开始看起来,只有极少的引用:
echo the job L_1 is finished | mutt zwang10@mtu.edu -s 'This is L_1.R'
只需要引用一些东西就可以将它们直接传递给远程shell:管道字符和主题周围的引号,以使空格不会将其拆分为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 zwang10@mtu.edu -s "'"This is ${program[0]}.R"'";
使用更长的命令,执行相同的操作:
cd $address && nohup Rscript ${program[0]}.R > ${program[0]}_sh.txt && echo the job ${program[0]} is finished | mutt zwang10@mtu.edu -s 'This is ${program[0]}.R'
(仅替换变量)。
在这里,需要引用一些内容:
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 zwang10@mtu.edu -s "'"This is ${program[0]}.R"'"