相关疑难解决方法(0)

如何在脚本本身内重定向整个shell脚本的输出?

是否可以将Bourne shell脚本的所有输出重定向到某个地方,但是脚本本身内部有shell命令?

重定向单个命令的输出很简单,但我想要更像这样的东西:

#!/bin/sh
if [ ! -t 0 ]; then
    # redirect all of my output to a file here
fi

# rest of script...
Run Code Online (Sandbox Code Playgroud)

含义:如果脚本以非交互方式运行(例如,cron),则将所有内容的输出保存到文件中.如果从shell以交互方式运行,请让输出像往常一样转到stdout.

我想为通常由FreeBSD定期实用程序运行的脚本执行此操作.它是日常运行的一部分,我通常不会每天都看到电子邮件,所以我没有发送它.但是,如果这个特定脚本中的某些内容失败,那对我来说很重要,我希望能够捕获并通过电子邮件发送这部分日常工作的输出.

更新:Joshua的回答是正确的,但我也想在整个脚本周围保存和恢复stdout和stderr,这样做:

# save stdout and stderr to file descriptors 3 and 4, then redirect them to "foo"
exec 3>&1 4>&2 >foo 2>&1

# ...

# restore stdout and stderr
exec 1>&3 2>&4
Run Code Online (Sandbox Code Playgroud)

shell

179
推荐指数
4
解决办法
16万
查看次数

双下划线(__const)在C中意味着什么?

extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 __THROW;
Run Code Online (Sandbox Code Playgroud)

我在Linux机器上的/usr/include/netinet/ether.h中找到了上面的函数定义.

有人可以在const(关键字),addr(标识符)和最后__THROW前面解释双下划线的含义.

c syntax double-underscore

48
推荐指数
2
解决办法
4万
查看次数

Python 的“__init__.py”是否有 C/C++ 等价物?

在 Python 中,当您创建一个模块时,您会创建一个__init__.py文件(至少通常如此)。是否有 C/C++ 等价物?我的意思是有没有办法让#include目录实际上包含一个文件?

c++ python c++11

7
推荐指数
1
解决办法
463
查看次数

有没有办法在c ++ #include语句中使用通配符?

这似乎是相当基本的功能,但是,无论我看到哪里,答案似乎都是否定的.

事情就是这样:我有一个文件夹,里面有我需要包含在c ++应用程序中的文件.它们都被命名为"FileX.h",其中X是1到400之间的数字.我这样做是因为我认为有一种方式我可以说#include"File*.h"之类的东西,它会包含每个文件符合这种模式.包含文件的顺序无关紧要.我现在意识到我可能应该把文件变成共享库或类似的东西,但为了将来的参考,我真的想知道这是否可行.

那么,是否有一些#include语句包含所有这些文件?或者,如果失败了,有没有办法在c ++中包含一个完整的目录文件(即#include"C:/ project/includes /")?

谢谢!

c++ include

5
推荐指数
1
解决办法
3792
查看次数

C++:如何包含文件夹中的所有源文件?

我已将每个函数放在自己的文件中.

如何一次性包含所有这些功能而不必手动重复每个文件的#include?我不在乎功能包含在哪个顺序.

编辑:来自数百个不同文件的所有功能属于同一组.实际上每个文件有4个功能......

c++ include visual-studio-2008

1
推荐指数
1
解决办法
3663
查看次数