如何找到使用的别名

时间:2016-12-07 08:59:04

标签: bash alias

我使用两个别名来表示相同的功能

alias lsd=LSD
alias lsdr=LSD
function LSD {

}

现在我需要检查函数是否使用lsd别名运行ls -ld或者如果使用lsdr运行ls -ldr并传递参数。

我可以使用参数,但我想检测函数中的别名,从中调用别名。

1 个答案:

答案 0 :(得分:1)

只需设置别名以包含一个额外的参数来标识所使用的别名,并在函数中将该参数从参数列表中移出。

function LSD
{
    typeset version=${1}
    shift

    case ${version} in
        1) echo "called as lsd" ;;
        2) echo "called as lsdr" ;;
    esac

    echo "Other args = $*"
}

alias lsd="LSD 1"
alias lsdr="LSD 2"