0

我正在尝试使用一个名为ccnd. 我想将其日志发送到文件。该工具的文档说:

要开始 ccnd 将输出发送到日志文件而不是终端,请将CCND_LOG环境变量设置为您要写入的文件的路径。任何具有该名称的现有文件都将被覆盖。

所以这就是我所做的:

$ CCND_LOG='./ccnd.log'
$ ccnd

但我仍然在终端中看到命令行工具的输出。如何使 CCND_LOG 在 ccnd 上生效?

我正在使用bash,这似乎是我的 Mac OS X 终端的默认设置。

4

1 回答 1

3

任何一个:

$ CCND_LOG="./ccnd.log" ccnd

或者:

$ export CCND_LOG="./ccnd.log"
$ ccnd

第一个设置命令的环境;第二个设置环境,直到它被改变。所有的环境变量也是shell变量;并非所有 shell 变量都是环境变量。在导出之前,变量只是一个 shell 变量;一旦它被导出,它就会成为环境的一部分。

如果您使用的是 C shell 衍生工具(例如tcsh),则必须使用该setenv命令来创建环境变量;第一个变体不是 C shell 的选项。

% setenv CCND_LOG ./ccnd_log
% ccnd

如果您使用的是 bash,则前两个中的任何一个都应在命令期间设置环境。使用导出符号。然后运行env | grep CCND以检查它是否已设置。

我看到CCNx 文档说:

所有 CCNx 程序都要求运行 ccnd:

bin/ccndstart

要开始 ccnd 将输出发送到日志文件而不是终端,请将CCND_LOG环境变量设置为您要写入的文件的路径。任何具有该名称的现有文件都将被覆盖。

有关可用的其他环境变量(包括调试消息控件)的列表,请运行:

bin/ccnd -h

请注意,您通常不应该直接运行 ccnd,而是使用 ccndstart脚本。

(强调补充。)

你是跑步ccnd还是ccndstart

于 2013-03-16T05:31:37.290 回答