gpt4 book ai didi

shell - shell 脚本中预期的条件二元运算符

转载 作者:行者123 更新时间:2023-12-03 21:20:55 27 4
gpt4 key购买 nike

我正在尝试一个简单的程序来比较存储在日志文件中的字符串值,但出现如下错误,

#!/bin/bash

check_val1="successful"
check_val2="completed"
log="/compile.log"

if [[ grep $check_val1 $log -ne $check_val1 || grep $check_val2 $log -ne $check_val2 ]];
then
echo "No Error"
else
echo "Error"
fi


Error:

./simple.sh: line 7: conditional binary operator expected
./simple.sh: line 7: syntax error near `$check_val1'
./simple.sh: line 7: `if [[ grep $check_val1 $log -ne $check_val1 || grep $check_val2 $log -ne $check_val2 ]];'

最佳答案

问题出在您的 if [[...]]您使用的表达式 2 grep不使用命令替换的命令,即 $(grep 'pattern' file) .

但是,而不是:

if [[ grep $check_val1 $log -ne $check_val1 || grep $check_val2 $log -ne $check_val2 ]]; then

您可以使用 grep -q :
if grep -q -e "$check_val1" -e "$check_val2" "$log"; then

根据 man grep :
-q, --quiet, --silent
Quiet mode: suppress normal output. grep will only search a file until a match
has been found, making searches potentially less expensive.

关于shell - shell 脚本中预期的条件二元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25118777/

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