得到错误:if:表达式语法



我的代码片段:

if  [[ $1 =~ .*core.* ]] &&  [[ $3 =~ .*165.* ]] ;
then 
{
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.300000;?g" $1_chain.v 
}
elif [[ $1 =~ .*top.* ]] &&  [[ $3 =~ .*ss.* ]] ;
then
{
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.000000;?g" $1_chain.v 
}
else
{ 
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 2.500000;?g" $1_chain.v 
}
fi

当inputt1 from user有一个字符串匹配核心,input3 user input有一个字符串匹配核心时,那么给定的命令需要在指定的文件中执行。

试试这个:

#!/bin/bash
if  [[ $1 =~ .*core.* ]] && [[ $3 =~ .*165.* ]]
then 
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.300000;?g" "$1_chain.v"
elif [[ $1 =~ .*top.* ]] && [[ $3 =~ .*ss.* ]]
then
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 3.000000;?g" "$1_chain.v"
else
sed -ie "s?parameter PRTIME .*?#parameter PRTIME nparameter PRTIME = 2.500000;?g" "$1_chain.v"
fi

我没有尝试或验证您的sed命令,因为您没有提供完整的示例数据集。

对于语法,您可以将代码放入https://www.shellcheck.net/

最新更新