Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash eval内部引号_Bash_Ssh - Fatal编程技术网

Bash eval内部引号

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脚本,它接受一个参数并执行如下操作:

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 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…这当前给我一个错误,表示显示无效