如何编写同时写入控制台和日志文件的函数?

切斯特89

我想编写一个将消息写入控制台和日志文件的函数。我最初的尝试是这样的:

function log_write {
    local message=$1
    local log_file=$2
    echo "${message}" | tee -a ${log_file}
}

但这是行不通的-我猜是因为函数上下文中的echo意味着“返回值”,而不是写入控制台。我错过了什么?我在脚本中这样调用它:

message='something interesting happened'
log_file='my_script.log'
$(log_write $message $log_file)

另外,我通过msysgit端口在Windows上运行它,但是我又把问题加倍了。

格伦·杰克曼

命令替换语法这里的问题是:

$(log_write $message $log_file)

这将调用该函数,并返回输出,准备将其捕获到变量中。但是,您没有这样做。

相反,您希望像其他任何命令一样调用函数:

log_write "$message" "$log_file"

请注意引号:它们对于将多词消息作为单个参数至关重要。否则,如果您这样做:

message="hello world"
log_write $message $log_file

然后,您将把单词“ hello”写入文件“ world”。发生这种情况是由于在扩展变量后出现了单词拆分经验法则:总是用引号引起来,除非您明确希望省略引号的单词拆分和文件名扩展效果。省略引号也有安全隐患

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将robocopy输出写入控制台和日志文件

来自分类Dev

将robocopy输出写入控制台和日志文件

来自分类Dev

Python,Flask同时打印到控制台和日志文件

来自分类Dev

在postsharp中将日志写入文件而不是控制台

来自分类Dev

在postsharp中将日志写入文件而不是控制台

来自分类Dev

如何使用扩展方法将消息写入日志文件或控制台

来自分类Dev

如何为每个文件写入和控制台写入指定特定的记录器级别

来自分类Dev

日志无法写入日志文件,但可以写入控制台

来自分类Dev

如何登录文件和控制台

来自分类Dev

如何登录文件和控制台

来自分类Dev

ESLint同时输出到文件和控制台

来自分类Dev

如何将输出发送到日志文件和控制台?

来自分类Dev

如何:编写漂亮的HTML代码和Javascript控制台

来自分类Dev

Javascript承诺和控制台日志?

来自分类Dev

控制台写入文件问题

来自分类Dev

将控制台输出写入文件

来自分类Dev

JMeter同时登录控制台和日志查看器

来自分类Dev

如何从C#控制台应用程序写入Azure WebJobs中的日志?

来自分类Dev

如何直接写入控制台?

来自分类Dev

Unity-如何编写控制台

来自分类Dev

如何为Windows运行FIO并同时将输出重定向到文件和控制台

来自分类Dev

如何同时将输出重定向到文本文件和控制台(cmd)窗口?

来自分类Dev

彩色控制台日志会使日志文件更大?

来自分类Dev

程序将文件的内容读入数组,并显示控制台和写入文件

来自分类Dev

Java和GhostDriver:隐藏控制台和日志

来自分类Dev

如何从Laravel控制器写入控制台?

来自分类Dev

如何将telnet控制台日志重定向到文件linux

来自分类Dev

如何从临时控制台运行函数?

来自分类Dev

如何使用 selenium 和 java 捕获浏览器控制台日志

Related 相关文章

  1. 1

    将robocopy输出写入控制台和日志文件

  2. 2

    将robocopy输出写入控制台和日志文件

  3. 3

    Python,Flask同时打印到控制台和日志文件

  4. 4

    在postsharp中将日志写入文件而不是控制台

  5. 5

    在postsharp中将日志写入文件而不是控制台

  6. 6

    如何使用扩展方法将消息写入日志文件或控制台

  7. 7

    如何为每个文件写入和控制台写入指定特定的记录器级别

  8. 8

    日志无法写入日志文件,但可以写入控制台

  9. 9

    如何登录文件和控制台

  10. 10

    如何登录文件和控制台

  11. 11

    ESLint同时输出到文件和控制台

  12. 12

    如何将输出发送到日志文件和控制台?

  13. 13

    如何:编写漂亮的HTML代码和Javascript控制台

  14. 14

    Javascript承诺和控制台日志?

  15. 15

    控制台写入文件问题

  16. 16

    将控制台输出写入文件

  17. 17

    JMeter同时登录控制台和日志查看器

  18. 18

    如何从C#控制台应用程序写入Azure WebJobs中的日志?

  19. 19

    如何直接写入控制台?

  20. 20

    Unity-如何编写控制台

  21. 21

    如何为Windows运行FIO并同时将输出重定向到文件和控制台

  22. 22

    如何同时将输出重定向到文本文件和控制台(cmd)窗口?

  23. 23

    彩色控制台日志会使日志文件更大?

  24. 24

    程序将文件的内容读入数组,并显示控制台和写入文件

  25. 25

    Java和GhostDriver:隐藏控制台和日志

  26. 26

    如何从Laravel控制器写入控制台?

  27. 27

    如何将telnet控制台日志重定向到文件linux

  28. 28

    如何从临时控制台运行函数?

  29. 29

    如何使用 selenium 和 java 捕获浏览器控制台日志

热门标签

归档