抱歉,这个话题有些模糊。我所追求的是一种ssh
在将我的首选配置文件复制到服务器的同时连接到服务器的方法。一般的想法是执行类似 的操作ssh -t [server] "cat a_profile > .bashrc;bash -li"
,我已将其扩展a_profile
为此处的文档:
function ssh
{
h=$1
/usr/bin/ssh -t $h "cat >.bashrc <<!
unalias -a
alias ll='ls -lpN'
set -o vi
export LESS=X
if [ "`id -u`" -eq 0 ]
then
export PS1="\"'\\h # '\""
else
export PS1="\"'\\h $ '\""
fi
export AWS_ACCESS_KEY=AKEY
export AWS_SECRET_KEY=ASECRETKEY
function ssh
{
h="'\$1'"
/usr/bin/scp ~/.bashrc "'\$h'":.bashrc
/usr/bin/scp ~/.vimrc "'\$h'":.vimrc
/usr/bin/ssh -A "'\$h'"
}
function ,
{
sudo bash --init-file /home/jan/.bashrc
}
!
bash -li
"
}
它似乎可以工作,只是当我调用该函数时会评估if [ "
id -u部分,因此测试读取。无论如何,我认为我需要处理引号,它们不可能是健康的,像那样嵌套。关于如何让它工作有什么想法吗?" -eq 0 ]
ssh
if 1000 -eq 0 ]
答案1
看起来您希望接收主机评估 id -u。您需要确保它完好无损地到达。
"\"id -u\""
这应该给你的本地 bash 一组要吞下的引号,但不让它吞噬该命令。