Shell 创建回显时间戳/无法在回显字符串中使用管道
我想使用时间戳在脚本文件中记录输出 在控制台上Shell 创建回显时间戳/无法在回显字符串中使用管道,shell,unix,unix-timestamp,Shell,Unix,Unix Timestamp,我想使用时间戳在脚本文件中记录输出 在控制台上 日期+%Y%m%d\u%H%m%S\u%N 打印类似于“20120206_104531_944652200”的内容 为了减少我发现的nano和mikro秒数 日期+%Y%m%d\u%H%m%S\u%N\124; sed S,“.\{6\}$”, 这给了我类似于“20120206\u 104531\u 944”的东西 在脚本文件中,它似乎有些不同。 每次记录输出完成时,都必须评估时间戳 此脚本代码可以工作: #!/usr/bin/bash log_p
日期+%Y%m%d\u%H%m%S\u%N 打印类似于“20120206_104531_944652200”的内容 为了减少我发现的nano和mikro秒数 日期+%Y%m%d\u%H%m%S\u%N\124; sed S,“.\{6\}$”, 这给了我类似于“20120206\u 104531\u 944”的东西 在脚本文件中,它似乎有些不同。 每次记录输出完成时,都必须评估时间戳 此脚本代码可以工作:
#!/usr/bin/bash
log_prefix1="date +%Y%m%d_%H%M%S_%N"
echo "`${log_prefix1}` blabla"
sleep 3
echo "`${log_prefix1}` blabla"
不幸的是,我并没有找到一种方法来运行这个只有3个最重要的纳秒数字的程序
此脚本代码不起作用:
#!/usr/bin/bash
log_prefix="date +%Y%m%d_%H%M%S_%N | sed s,\".\{6\}$\",,"
echo "`${log_prefix}` blabla"
sleep 3
echo "`${log_prefix}` blabla"
我收到以下错误消息:
date: extra operand `|'
Try `date --help' for more information.
因此,在执行时sed的管道出现了一些问题
有什么想法吗?你可以通过为它创建一个函数来简化你的生活 比如:
log_echo() {
echo $(date +%Y%m%d_%H%M%S_%N | sed 's,.\{6\}$,,') "$@";
}
...
log_echo hello there
你可以为它创建一个函数,让你的生活变得简单一点 比如:
log_echo() {
echo $(date +%Y%m%d_%H%M%S_%N | sed 's,.\{6\}$,,') "$@";
}
...
log_echo hello there
$*
不符合DWIM;例如,尝试使用多个连续空白字符的字符串。改为使用“$@”
。$*
不符合DWIM;例如,尝试使用多个连续空白字符的字符串。请改用“$@”。