Bash eval内部引号
我有一个bash脚本,它接受一个参数并执行如下操作: ssh-t someserver“setenv DISPLAY$1;/usr/bin/somesprogram”Bash eval内部引号,bash,ssh,Bash,Ssh,我有一个bash脚本,它接受一个参数并执行如下操作: ssh-t someserver“setenv DISPLAY$1;/usr/bin/somesprogram” 如何强制bash在$1中替换,而不是将文字字符“$1”作为显示变量传递?Edit您知道吗 ssh -X ... ssh -Y ... 哪一个已经支持开箱即用的X转发?也看看 xhost + 如果您需要增加对“来宾”的权限 如果要转发非标准X显示地址,可以始终使用 DISPLAY=localhost:3 ssh -XCt use
如何强制bash在$1中替换,而不是将文字字符“$1”作为显示变量传递?Edit您知道吗
ssh -X ...
ssh -Y ...
哪一个已经支持开箱即用的X转发?也看看
xhost +
如果您需要增加对“来宾”的权限
如果要转发非标准X显示地址,可以始终使用
DISPLAY=localhost:3 ssh -XCt user@remote xterm
奖金:要在身份验证后创建ssh背景,请添加'-f'
什么地方?这应该已经如图所示起作用了。远程?转义$:\$
但是,我不确定命令将从哪里获取它的参数($1)根据您对sehe答案的评论,听起来您只是希望远程命令使用本地X显示-以便程序在您的远程服务器上运行(
someserver
)但是在运行ssh
命令的机器上显示
这可以通过传递-X
来完成,例如
ssh -X someserver /usr/bin/someprogram
由于某些原因,这在一些程序中不起作用,例如evince
。我真的不知道为什么。我很确定,evice
是我唯一一个在通过SSH连接转发回来时遇到问题的应用程序
如果这不是您的目标,请解释。您确定报价如图所示吗?它应该如图所示工作。有没有可能$1没有您期望的值?看起来应该是这样,因为bash在双引号内执行替换…
setenv
仅在t?csh中有用,这真的是您在远程端运行的吗?是的,我在远程端运行csh如果调用我的脚本,runRemoteProgWithDisplay,我希望能够执行。/runRemoteProgWithDisplay 129.1.1.1:1…这当前给我一个错误,表示显示无效