2015-04-24 4 views
1

Я использую следующий сценарий оболочки для отправки электронной почты. Но тема электронной почты всегда показывает «Это» вместо "This is L_1.R".'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"; 

ответ

0

Первый запуск с тем, что вы хотите, удаленная команда выглядеть, с голой минимальной процитировать:

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

Есть только несколько вещей, которые нужно процитировать, чтобы они прошли буквально на удаленной оболочки: символ трубы и кавычки вокруг объекта, чтобы промежутки не разбивали его на отдельные аргументы на 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"'"; 

С длинной команды, сделать то же самое:

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' 

(только с переменными замещенными).

Здесь несколько вещей, которые должны быть указаны:

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

Не могли бы вы помочь мне сделать это аккуратно' ssh -f c15- 0330-01.ad.mtu.edu 'cd' "$ address" '&& nohup Rscript' "" $ {program [0]} ". R" '>' "" $ {program [0]} "_ sh.txt «&& '' echo '" задание $ {program [0]} завершено "' | ' 'mutt "[email protected]" -s "Это"' $ {program [0]} '". R";' ' –

+0

уверен, попробуйте это. – ysth

+0

'address ="/home/campus27/zwang10/Desktop/AWRR/program/power/vmodel_1/nprot/K_10 "' –

0

Переведите одну котировку.

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: Я выбрал переменную из кавычек. Главное - пробелы.

+0

Я пробовал, но он говорит, 'Программа: Undefined variable.' Причина, по которой я не ставлю двойные кавычки внутри одиночных кавычек, что я не может определять переменную между одинарными кавычками. –

+0

Я положил '\ n' в' echo', но он не работает. 'ssh -f $ {host_list [0]} cd '' '$ address' '' && 'nohup Rscript $ {program [0]}. R'> '$ {program [0]} _ sh.txt' && ' echo Задача $ address $ {program [0]} \ nis завершена '|' mutt [email protected] -s "'" $ {host_list [0]} - Job $ {program [0]}. R завершено «'»; ' –