在使用该别名调用的函数中使用 bash 别名
Use bash alias name in a function that was called using that alias
我正在玩game in a terminal。它使用 ssh 连接,每个级别都有一对不同的用户和密码。
我使用我的 bash 别名来存储这些对,即我为每个级别都有一个别名,我在其中调用带有 2 个参数的 bash 函数:密码和级别数。
function log.as.bandit() {
sshpass -p ssh bandit@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass 14"
alias bandit15="log.as.bandit differentSecretPass 15"
如果我可以仅将密码作为参数传递并从我使用的别名中获取用户名,那对我来说会更容易。
问题:
是否可以在由该别名调用的函数中使用别名?
示例中:
function log.as.bandit() {
sshpass -p 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 "" ssh "${FUNCNAME[1]}"@bandit.labs.overthewire.org
}
bandit14() { log.as.bandit secretPass; }
bandit15() { log.as.bandit differentSecretPass; }
即使用函数而不是别名。
FUNCNAME
是一个数组,其中包含当前正在执行的函数的名称。 ${FUNCNAME[0]}
是当前函数本身的名称(log.as.bandit
); ${FUNCNAME[1]}
是调用函数的名称(bandit14
或 bandit15
)。
我正在玩game in a terminal。它使用 ssh 连接,每个级别都有一对不同的用户和密码。
我使用我的 bash 别名来存储这些对,即我为每个级别都有一个别名,我在其中调用带有 2 个参数的 bash 函数:密码和级别数。
function log.as.bandit() {
sshpass -p ssh bandit@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass 14"
alias bandit15="log.as.bandit differentSecretPass 15"
如果我可以仅将密码作为参数传递并从我使用的别名中获取用户名,那对我来说会更容易。
问题:
是否可以在由该别名调用的函数中使用别名?
示例中:
function log.as.bandit() {
sshpass -p 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 "" ssh "${FUNCNAME[1]}"@bandit.labs.overthewire.org
}
bandit14() { log.as.bandit secretPass; }
bandit15() { log.as.bandit differentSecretPass; }
即使用函数而不是别名。
FUNCNAME
是一个数组,其中包含当前正在执行的函数的名称。 ${FUNCNAME[0]}
是当前函数本身的名称(log.as.bandit
); ${FUNCNAME[1]}
是调用函数的名称(bandit14
或 bandit15
)。