在使用该别名调用的函数中使用bash别名

在使用该别名调用的函数中使用bash别名,bash,function,alias,Bash,Function,Alias,我在玩游戏。它使用ssh连接,每个级别都有一对不同的用户和密码 我使用bash别名来存储这些对,也就是说,我在调用bash函数的每个级别上都有一个别名,其中包含两个参数:password和number of level function log.as.bandit() { sshpass -p $1 ssh bandit$2@bandit.labs.overthewire.org } alias bandit14="log.as.bandit secretPass 14" alias b

我在玩游戏。它使用ssh连接,每个级别都有一对不同的用户和密码

我使用bash别名来存储这些对,也就是说,我在调用bash函数的每个级别上都有一个别名,其中包含两个参数:password和number of level

function log.as.bandit() {
    sshpass -p $1 ssh bandit$2@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass 14"
alias bandit15="log.as.bandit differentSecretPass 15"
如果我可以作为参数密码传递,并从我使用的别名中获取用户名,那对我来说就更容易了

问题:
是否可以在已由别名调用的函数中使用别名

在示例中:

function log.as.bandit() {
    sshpass -p $1 ssh $HERE_I_DEREFERENCE_THE_ALIAS_NAME@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass"
alias bandit15="log.as.bandit differentSecretPass"

据我所知:不,你不能用别名

但你能做的是:

function log.as.bandit() {
    sshpass -p "$1" ssh "${FUNCNAME[1]}"@bandit.labs.overthewire.org
}
bandit14() { log.as.bandit secretPass; }
bandit15() { log.as.bandit differentSecretPass; }
i、 e.使用函数而不是别名


FUNCNAME
是一个数组,包含当前执行函数的名称
${FUNCNAME[0]}
是当前函数本身的名称(
log.as.bandit
${FUNCNAME[1]}
是调用函数的名称(
bandit14
bandit15
)。

我忘了写我想的方法与C中的
const char*argv[]
类似。这很有效,对我来说是一个新的知识-谢谢