linux 获取错误:if:表达式语法

wn9m85ua  于 2022-12-03  发布在  Linux
关注(0)|答案(1)|浏览(157)

我的代码片段:

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

当来自用户的input1具有匹配core的字符串并且input3用户输入具有匹配ss的字符串时,则需要在指定文件中执行给定命令。

4ioopgfo

4ioopgfo1#

试试这个:

#!/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/

相关问题