我有一个连接到我的开发服务器的别名:
alias sshDev='ssh -p 22 username@ip_address'
我希望能够连接并自动切换到新目录:
cd ../my-favorite-directory
是否有办法在一个本地别名下运行这两个命令?
答案1
您可以为该命令设置别名,如下所示:
alias sshDev="ssh -tp 22 username@ip_address 'cd /path/to/dir; bash'"
正如Arthur2e5建议的那样添加参数-il
很方便
相关部分man bash
:
-i If the -i option is present, the shell is interactive.
-l Make bash act as if it had been invoked as a login shell (see INVOCATION below).
如果您希望有一个动态目标文件夹(每次调用别名时定义它),您将必须编写一个由您的别名调用的函数。例如:
alias sshDev=ssh·Dev
function ssh·Dev() {
if [ "$#" -eq 0 ]; then
fav_dir="/path/to/dir"
else
fav_dir=$1
fi
ssh -tp 22 username@ip_address "cd $fav_dir; bash"
}
使用这一小段代码,当您在命令行中调用(键入)别名时,如下所示:(sshDev
不带参数),它将使用函数中定义的静态 /path/to/dir ,否则,如果您像这样调用别名这sshDev /one/other/path/to/dir
将使用内联提供的路径。