我正在尝试将文本传输到文件中:
'date +"%H:%M" development' > log
示例:12:12 开发
但这实际上是管道date +"%H:%M" development
,而不是12:12 development
答案1
有两种方法可以实现所需的输出。
错误的方式 - 系统解析该行,并将“development”作为“date”的参数。由于“date”应用程序没有这样的参数,因此它会抛出一个有用的错误。
$ date +"%H:%M" development
date: extra operand ‘development’
Try 'date --help' for more information.
解决方案 #1:使用日期格式
$ date +"%H:%M development"
07:10 development
解决方案#2:使用命令替换
$ echo $(date +"%H:%M") development
07:10 development
答案2
似乎您正在使用echo
或printf
其他命令将输出重定向到日志文件,否则您会收到如下错误消息:
bash: date +"%H:%M" development: command not found
如果是这种情况,您需要使用命令替换来获取date
命令的输出,同时避免' '
在字符串周围使用强引号 。以下方法有效:
echo "$(date +'%H:%M development')" > log
或者
echo "$(date +'%H:%M) development" > log
如果您只是使用date
不带echo
等的,则在日期格式字符串中包含字符串“development”,格式字符串可以用或引用'
,"
因为它不是由 bash 扩展的,而是由date
命令扩展的:
date +"%H:%M development" > log
或者
date +'%H:%M development' > log