假设我正在尝试执行具有行
的脚本userScriptenv > ENVIRONMENTAL_VARIABLES.txt
我是按照以下两种方式做到的。
1
通过使用ssh实际登录:
ssh host
password:xyz***
./userScript
ENVIRONMENTAL_VARIABLES.txt确实已创建并包含命令env的结果。
2
ssh -i key host 'userScript'
在这种情况下,ENVIRONMENT_VARIABLES.txt不会被创建。
另外,我相信第一种情况将是交互式shell的一个例子,第二种情况是非交互式shell(如果我错了,请纠正我。)。并且两种机制都存在差异(无论是.profile,.bashrc等文件是否被执行)。
如何确保在第二种情况下创建ENVIRONMENT_VARIABLES.txt?要改变哪些环境变量?
答案 0 :(得分:1)
是的,为交互式和非交互式会话提供了一组不同的启动脚本。
在ssh
命令行上指定命令时,默认情况下会启动非交互式会话。
要强制进行交互式会话,请使用-t
开关。请参阅ssh
man page:
-t 强制伪终端分配。 ...
答案 1 :(得分:0)
这可能不依赖于伪终端。正如我所看到的,区别在于命令的规范。使用.txt
命令行上Image0001_01.tif[1] <- Image0035_01.tif[1]: (410.0, -362.0) correlation (R)=0.05516124 (176 ms)
Image0001_01.tif[1] <- Image0002_01.tif[1]: (489.0, -495.0) correlation (R)=0.047715914 (287 ms)
Image0002_01.tif[1] <- Image0003_01.tif[1]: (647.0, 0.0) correlation (R)=0.8842946 (295 ms)
Image0001_01.tif[1] <- Image0036_01.tif[1]: (265.0, -363.0) correlation (R)=0.039207384 (365 ms)
Image0002_01.tif[1] <- Image0034_01.tif[1]: (626.0, -626.0) correlation (R)=0.60634625 (124 ms)
...........
路径的完整路径或相对路径:
$HOME
如果有问题,请查看ssh
的输出,并可能在ssh上使用ssh -i key host '/add/path/here/userScript'
选项再次运行命令。
另外,请注意当前目录,ssh
通常从您的主目录开始。如果您的脚本不在您的主目录中,请使用此答案中的上述示例中的路径。
如果您从未创建文件的命令发布实际输出,则可以更快地获得更好的答案。