繁体   English   中英

如何捕获当前命令并将其作为参数发送到脚本中?

[英]How do I capture the current command and send it into a script as an argument?

我希望这个问题的标题不会太混乱。

我想要做的是当指定的命令在shell中运行完毕后给自己发送一封电子邮件。 为此,我编写了一个简单的脚本,它接受一个参数并向我发送一封带有参数的电子邮件作为消息文本。 我的想法是能够以下列方式执行一个我知道需要很长时间的命令:

./commandThatTakesALongTime; ./emailingScript <some argument>

这里显而易见的答案是再次编写命令的名称,并将其作为字符串传递,但通常我会有大量参数的命令,所以我更喜欢它自动获取执行的内容。

我尝试过使用!!:p的各种组合,但这似乎不起作用。 有小费吗?

ETA:我正在寻找一些我可以传递的东西,基本上只是打印“./commandThatTakesALongTime” - 这样的东西存在吗? 我这样做的原因是因为我需要在执行命令后保留环境。

写一个这样的脚本:

#!/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运行exec_and_mail some_command -with arguments --passed --to it

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM