有没有一种方法可以调用别名而不将其与前面的字符分开?

有没有一种方法可以调用别名而不将其与前面的字符分开?

我对这一切都很陌生。尝试通过网络进行战争游戏来学习,并认为登录每个级别有点乏味,并想创建一些快捷方式。我创建了一个别名,可以获取下一级别的密码并通过 sshpass 传递,这节省了相当多的输入时间。但我想知道我是否可以对连接地址做同样的事情。

到目前为止我已经将其变成了:

sshpass -p `sed -n "$p" banditpw` ssh <username>@bandit.labs.overthewire.org -p 2220

变成这样:

sshp <username>@bandit.labs.overthewire.org -p 2200

我想知道我是否可以对 bandit.labs.overthewire.org -0 2200 部分做同样的事情。我尝试这样做

alias otw="bandit.labs.overthewire.org -p 2220"

在我尝试执行此操作之前,终端无法识别:

<username>@otw

它无法识别我想调用别名“otw”,因为它与 @ 之间没有分隔。有没有办法让终端理解我想调用别名,而别名与前面的字符之间没有分隔?

另外,我只会在别名中包含用户名@,只是用户名会在每个级别上发生变化。

答案1

我认为你想用类似的东西登录

$ user1@otw
$ user2@otw
$ user3@otw

我的目的是使用function类似这样的简单方法登录:

$ otw user1
$ otw user2
$ otw user3
  • 为了实现此功能,您可以执行以下操作:
otw(){
user="$1"
sshpass -p `sed -n "$p" banditpw` ssh ${user}@bandit.labs.overthewire.org -p 2220
}

相关内容