在一个命令行中从t-shell切换到bash和源文件
从我机器上的用户,默认情况下,我通过ssh连接到另一台运行t-shell的机器上的共享用户。我想创建一个别名,将我作为共享用户登录到另一台计算机,在一个命令行中从t-shell切换到bash和源文件,bash,ssh,Bash,Ssh,从我机器上的用户,默认情况下,我通过ssh连接到另一台运行t-shell的机器上的共享用户。我想创建一个别名,将我作为共享用户登录到另一台计算机,cds到该计算机上的我的个人文件夹,将shell切换到bash,并生成一个脚本来定义一些其他别名我如何才能做到这一点? 这就是我到目前为止所尝试的。我在我的机器上运行: ssh -ty <otheruser>@<otherhost> 'cd <myfolder>; source tsh.personal' 它告诉b
cd
s到该计算机上的我的个人文件夹,将shell切换到bash,并生成一个脚本来定义一些其他别名我如何才能做到这一点?
这就是我到目前为止所尝试的。我在我的机器上运行:
ssh -ty <otheruser>@<otherhost> 'cd <myfolder>; source tsh.personal'
它告诉bash启动另一个不会退出的bash实例。但是,当该实例启动时,它就像
~//bash.personal
从未来源。每当启动新的bash实例时,是否都会重置所有别名,或者为什么不将别名传递给新实例?将tsh.personal
更改为
exec /bin/bash --rcfile ~/<myfolder>/bash.personal
exec/bin/bash--rcfile~//bash.personal
严格来说,
exec
不是必需的,但是它通过将tsh
实例替换为bash
实例来清理进程表。我没有使用tcsh,但您不能将“cd;exec bash”放在.tcshrc文件中吗?然后使用普通的bash startup init文件,如.bash_profile或.bashrc?他不能直接编辑.bashrc
,因为他是作为另一个用户登录的。根据,--rcfile
选项将从给定文件而不是从标准的个人初始化文件~/.bashrc
执行命令。我希望bash执行给定文件以及~/.bashrc
中的命令。我通过在bash.personal
文件的顶部添加source~/.bashrc
解决了这个问题,尽管我个人认为这个解决方案有点糟糕。
/bin/bash -c 'source ~/<myfolder>/bash.personal; /bin/bash'
exec /bin/bash --rcfile ~/<myfolder>/bash.personal