我希望这个问题的标题不会太混淆。
我想要做的是在指定的命令在shell中运行完毕后给自己发送一封电子邮件。为此,我编写了一个简单的脚本,它接受一个参数并向我发送一封带有参数的电子邮件作为消息文本。我的想法是能够以下列方式执行一个我知道需要很长时间的命令:
./commandThatTakesALongTime; ./emailingScript <some argument>
这里显而易见的答案是再次编写命令的名称,并将其作为字符串传递但通常我会有大量参数的命令,所以我更喜欢它自动抓取执行的内容。
我尝试过使用!!:p的各种组合,但这似乎不起作用。有什么提示吗?
ETA:我正在寻找一些我可以传递的东西,基本上只是打印“./commandThatTakesALongTime” - 这样的东西存在吗?我这样做的原因是因为我需要在执行命令后保留环境。
答案 0 :(得分:3)
写一个这样的脚本:
#!/bin/bash
if "$@" ; then
echo "$@" | mail -s 'command complete' some@email.address
else
echo "Command failed!"
fi
将其另存为exec_and_mail
并使其可执行。
您将其作为exec_and_mail some_command -with arguments --passed --to it
运行。