shell将脚本输出结果记录到日志文件

本文介绍了如何使用Linux下的tee命令来同时显示和保存shell脚本的输出到文件中,这对于调试和记录脚本运行过程非常有用。此外还提供了一个简单的示例说明如何获取当前执行脚本的父目录路径。

使用tee命令:

sh portal/main.sh |tee log.txt

 

获取脚本父类路径
cmddir="`dirname $0`"

在 ClickHouse 客户端使用 shell 脚本执行输出运行日志和结果,可按以下方法操作: ### 简单查询输出到标准输出日志文件 将查询语句直接传递给 `clickhouse-client` 命令,使用重定向将结果输出日志文件。示例脚本如下: ```bash #!/bin/bash # 定义 ClickHouse 客户端命令 CLICKHOUSE_CLIENT="clickhouse-client --password" # 定义查询语句 QUERY="SELECT * FROM your_table_name LIMIT 10" # 执行查询结果输出到标准输出日志文件 $CLICKHOUSE_CLIENT --query "$QUERY" | tee clickhouse_query.log ``` 在上述脚本中,`tee` 命令将查询结果同时输出到标准输出和 `clickhouse_query.log` 文件。 ### 批量执行查询记录日志 如果需要批量执行多个查询,可以将查询语句存储在一个文件中,然后逐行读取执行。示例脚本如下: ```bash #!/bin/bash # 定义 ClickHouse 客户端命令 CLICKHOUSE_CLIENT="clickhouse-client --password" # 定义查询文件路径 QUERY_FILE="queries.txt" # 遍历查询文件中的每一行查询语句 while IFS= read -r query; do # 执行查询记录日志 echo "Executing query: $query" >> clickhouse_batch_query.log $CLICKHOUSE_CLIENT --query "$query" >> clickhouse_batch_query.log 2>&1 echo "Query execution finished." >> clickhouse_batch_query.log done < "$QUERY_FILE" ``` 在上述脚本中,`queries.txt` 文件包含多个查询语句,每个查询语句占一行。脚本逐行读取查询语句执行,将执行信息和查询结果记录到 `clickhouse_batch_query.log` 文件中。`2>&1` 表示将标准错误输出重定向到标准输出,确保错误信息也能记录日志文件中。 ### 执行复杂查询处理结果 如果查询结果需要进一步处理,可以在脚本中使用变量存储查询结果进行相应的处理。示例脚本如下: ```bash #!/bin/bash # 定义 ClickHouse 客户端命令 CLICKHOUSE_CLIENT="clickhouse-client --password" # 定义查询语句 QUERY="SELECT COUNT(*) FROM your_table_name" # 执行查询结果存储到变量中 RESULT=$($CLICKHOUSE_CLIENT --query "$QUERY") # 输出查询结果 echo "The number of rows in the table is: $RESULT" # 将结果记录日志文件 echo "Query result: $RESULT" >> clickhouse_complex_query.log ``` 在上述脚本中,查询结果存储在 `RESULT` 变量中,可以对其进行进一步的处理和输出
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值