检查多行字符串是否与表达式匹配

检查多行字符串是否与表达式匹配

我有这个:

declare_result=$(declare -f cd);

逐字生成:

cd () 
{ 
    prev_cd "$@";
    echo "botch cd hook invoked.";
    run_botch
}

如何检查 $declare_result 是否匹配“run_botch”?

是不是这么简单:

if [[ "$declare_result" == *"run_botch"* ]];

如果这不适用于多行字符串?我主要担心的是它不适用于换行符分隔的字符串。

答案1

你的例子效果很好。bash与包含嵌入换行符的字符串匹配没有问题。

使用这样的模式*$'run_botch\n'*甚至可以匹配字符串后面的换行符run_botch

相关内容