lew*_*tan 1 bash alias function
我在终端玩游戏.它使用ssh连接,每个级别都有一对不同的用户和密码.
我使用我的bash别名存储这些对,即我为每个级别都有一个别名,我用两个参数调用bash函数:密码和级别数.
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"
Run Code Online (Sandbox Code Playgroud)
如果我可以作为参数传递密码并从我使用的别名中获取用户名,那对我来说会更容易.
问题:
是否可以在该别名调用的函数中使用别名?
在示例中:
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"
Run Code Online (Sandbox Code Playgroud)
据我所知:不,你不能用别名做到这一点.
但你能做的是:
function log.as.bandit() {
sshpass -p "$1" ssh "${FUNCNAME[1]}"@bandit.labs.overthewire.org
}
bandit14() { log.as.bandit secretPass; }
bandit15() { log.as.bandit differentSecretPass; }
Run Code Online (Sandbox Code Playgroud)
即使用函数而不是别名.
FUNCNAME
是一个包含当前正在执行的函数名称的数组.${FUNCNAME[0]}
是当前函数本身的名称(log.as.bandit
); ${FUNCNAME[1]}
是调用函数(bandit14
或bandit15
)的名称.
归档时间: |
|
查看次数: |
278 次 |
最近记录: |