【问题标题】:Write output of command to a log file将命令输出写入日志文件
【发布时间】:2019-06-17 15:35:33
【问题描述】:

我在“环境”文件中有函数来输出我的脚本的日期和命令输出,如下所示:

LogWrite ()
{
    print `date "+%Y%m%d %H%M%S"` ${1} >> $FILE_LOG
}

我有一个脚本,它加载一个环境文件并创建一个命令的ps。我将命令的输出分配给一个变量,然后我想将输出写入$FILE_LOG。我愿意:

list="$(ps -eo pid,lstart,cmd | grep -i crack  | grep -v grep)"
...........
LogWrite $list

它总是只显示ps 的第一个字段(例如 234324)。

【问题讨论】:

  • 你的 LogWrite 命令只输出它的第一个参数。要么将${1} 更改为"$@",要么使用引号传递第一个参数中的所有内容:LogWrite "$list"

标签: shell ksh


【解决方案1】:

LogWrite 只打印它的第一个参数。一种可能的解决方法:

LogWrite() {
    printf "%s: " "$(date '+%Y%m%d %H%M%S')"
    echo "${@}"
} >> $FILE_LOG

另一种可能性是将列表放入第一个参数中,只需在调用 LogWrite 时正确引用参数即可完成:

LogWrite "$list"

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2012-10-06
    • 2023-03-31
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多