我正在尝试编写一个可以添加到任何命令的脚本。完成后,它将运行以下参数给出的命令,然后在命令完成时向用户发送电子邮件。
@H_502_1@$PROG=$1
// Run program below
$PROG $@
ECODE=$?
echo -e 'Subject: `hostname`: $PROG finished\r\nTo: <$USER>\r\n\r\nExited with $ECODE\r\n' | sendmail $USER
这个工作大部分时间都是这样,但是在命令执行的参数中出现引用时,它们被剥离。例:
作品:
@H_502_1@# notify-finished rsync -avz source/ user@remote:dest/不行:
@H_502_1@# notify-finished rsync -avz -e 'ssh -c blowfish' source/ user@remote:dest/在第二种情况下,$ @扩展到rsync -avz -e ssh -c blowfish source user @ remote:dest /,缺少单引号。它也不适用于双引号。
使用:
@H_502_1@$PROG "$@"
原文链接:https://www.f2er.com/bash/387400.html它将每个参数包含在“”中。