如何制作接受用户输入的 Bash 别名?

ela*_*urk 2 bash alias functions

我有一个 Bash 别名,用于向我的服务器发送命令,例如:

alias ssh=sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "some_command"
Run Code Online (Sandbox Code Playgroud)

但我希望每次都能输入不同的命令(而不是引号之间的预定义命令),并提示我的输入。这可能与某些功能有关吗?

des*_*ert 6

就这么简单:

myfunctionname(){
  sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "$@"
}
Run Code Online (Sandbox Code Playgroud)

这定义了一个函数myfunctionname,该函数使用您提供的参数作为 的命令ssh。示例调用:

myfunctionname tree
myfunctionname "ls -l; hostname"
myfunctionname ls -l\; pwd         # remember quoting if doing that!
Run Code Online (Sandbox Code Playgroud)

将该函数放入您的~/.bashrc文件中,使其可从每个新终端访问。