我有这个:
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
。