gpt4 book ai didi

bash - 如何在 bash 中将错误重定向到/dev/null?

转载 作者:行者123 更新时间:2023-11-29 09:36:24 26 4
gpt4 key购买 nike

我们每天运行 Selenium 测试来测试我们的网站和扩展。我写了一个脚本(根据 this question )来计算通过和失败测试的数量。这是脚本:

#!/bin/bash

today=`TZ='Asia/Tel_Aviv' date +"%Y-%m-%d"`
yesterday=`TZ='Asia/Tel_Aviv' date +"%Y-%m-%d" -d "yesterday"`

...

print_test_results()
{
declare -i passed_tests=0
declare -i failed_tests=0
declare -i total_tests=0
log_suffix="_${file_name}.log"
yesterday_logs="${log_prefix}${yesterday}_[1,2]*${log_suffix}"
today_logs="${log_prefix}${today}_0*${log_suffix}"
for temp_file_name in $yesterday_logs $today_logs ; do
total_tests+=1
if grep -q FAILED "$temp_file_name" ; then
failed_tests+=1
elif grep -q OK "$temp_file_name" ; then
passed_tests+=1
else
failed_tests+=1
fi
done
echo "<tr>"
echo "<td>$test_name - $today</td>"
if [ $passed_tests = "0" ]; then
echo "<td>$passed_tests passed</td>"
echo "<td><span style=\"color: red;\">$failed_tests failed</span></td>"
else
echo "<td><span style=\"color: green;\">$passed_tests passed</span></td>"
echo "<td>$failed_tests failed</td>"
fi
echo "<td>$total_tests tests total</td>"
echo "</tr>"
}

file_name="chrome_gmail_1_with_extension_test"
test_name="Chrome Gmail 1 With Extension Test"
print_test_results

...

但问题是,如果文件不存在(in $yesterday_logs $today_logs),我会收到错误消息。如何将这些错误消息重定向到/dev/null?我想将它们从脚本重定向到/dev/null,而不是从调用脚本的行 - 我希望此脚本永远不会显示有关不存在的文件的错误消息。

最佳答案

仅作记录:

通常,要在 bash 中抑制错误消息,请使用 command 2>/dev/null。因此,在您的情况下,您应该使用 grep -q OK 2>/dev/null

但正如您的案例也表明的那样(从我在评论中读到的),这是一件冒险的事情,因为它掩盖了您的代码中可能存在的错误。 “我希望这个脚本永远不会打印错误消息”只有在知道所有可能发生的错误情况时才应该说。

关于bash - 如何在 bash 中将错误重定向到/dev/null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31901741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com