我正在尝试使用名为ccnd
的命令行工具。我想将其日志发送到一个文件。该工具的文档说:
要开始ccnd发送输出到日志文件而不是终端, 使用您的文件路径设置
CCND_LOG
环境变量 想写。具有该名称的任何现有文件都将被覆盖。
所以这就是我所做的:
$ CCND_LOG='./ccnd.log'
$ ccnd
但是我仍然在终端中看到命令行工具的输出。如何在ccnd上使CCND_LOG生效?
我正在使用bash
,这似乎是我的Mac OS X终端的默认设置。
答案 0 :(得分: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 Documentation说:
所有CCNx计划都要求ccnd正在运行:
bin/ccndstart
要开始ccnd发送输出到日志文件而不是终端, 使用您的文件路径设置
CCND_LOG
环境变量 想写。具有该名称的任何现有文件都将被覆盖。有关可用的其他环境变量的列表 (包括调试消息控件)运行:
bin/ccnd -h
请注意,您通常不应直接运行ccnd ,但请使用
ccndstart
脚本。
(强调补充。)
您是否正在使用ccnd
或ccndstart
?