【发布时间】:2014-08-20 07:29:57
【问题描述】:
所以我基本上是在尝试覆盖我的ssh 命令,所以我只需要输入ssh,默认情况下它会连接到我的主服务器。然后,如果我给它传递一个参数,比如username@server_port,它就会运行基本命令。
# Fast SSH (a working progress) TODO: make work without naming the function `fssh`
function fssh() {
ALEX_SERVER_CONNECTION=$ALEX_SERVER_UNAME@$ALEX_SERVER_PORT
# if the `ssh` argument is not set
if [ -z "${1+xxx}" ]; then
# echo "ALEX_SERVER_CONNECTION is not set at all";
ssh $ALEX_SERVER_CONNECTION
fi
# if the `ssh` argument is set
if [ -z "$1" ] && [ "${1+xxx}" = "xxx" ]; then
ssh $1
fi
}
如果没有f 在ssh 前面,我如何让它工作?
所以基本上这就是正确完成后的样子:
# Fast SSH
function ssh() {
ALEX_SERVER_CONNECTION=$ALEX_SERVER_UNAME@$ALEX_SERVER_PORT
# if the `ssh` argument is not set
if [ -z "${1+xxx}" ]; then # ssh to the default server
command ssh $ALEX_SERVER_CONNECTION
fi
# if the `ssh` argument is set
if [ -z "$1" ] && [ "${1+xxx}" = "xxx" ]; then # ssh using a different server
command ssh $1
fi
}
【问题讨论】:
-
我在想如果我包含定义
ssh的路径,我可以包含source /path/to/ssh之类的东西,它可能会起作用,但我找不到正确的尝试路径。 -
如果有错误信息可以提供吗?你把你的函数放在
~/.bashrc了吗? -
@AlexCory 你能澄清你的目标是什么,因为它是模棱两可的,会导致不同的答案