bash shell脚本别名扩展在if语句中不起作用

问题描述

我写了一个简单的脚本来测试别名扩展,但输出如下所示。 我只是想了解这种行为的原因或原因。

.v-tabs {
  ::v-deep {
    .v-tabs-slider-wrapper {
      transition: none;
    }
  }
}

我的终端输出

#!/bin/bash

shopt -s expand_aliases

function echo_dbg()
{
    echo "Line# ($lineno): $*"
}

if true; then
    alias echo_dbg='lineno=$LINENO echo_dbg'
    echo_dbg "I want to print line#" # Don't kNow why this echo_dbg is not expanded 
fi

echo_dbg "I want to print line line#" # this echo_dbg is expanded correctly

但是,如果我将别名定义移到 fi 语句上方,则两个 echo_dbg 会按预期工作。

Line# (): I want to print line#
Line# (15): I want to print line line#

我的终端输出

#!/bin/bash

shopt -s expand_aliases

function echo_dbg()
{
    echo "Line# ($lineno): $*"
}

alias echo_dbg='lineno=$LINENO echo_dbg'

if true; then
    echo_dbg "I want to print line#"
fi

echo_dbg "I want to print line line#"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)