在启动任何sh shell之前,我需要执行一些重要的命令。这是在SSH命令(ssh host somecommand
)和其他运行命令的程序中传递SSH命令所必需的。
在我的.profile
我有这个:
ihammerhands@wreckcreations:~> cat .profile
#specific environment and startup programs
export PS1="\u@wreckcreations:\w> "
export PYTHONPATH=~/python/lib/python2.4/site-packages
export PATH=$PATH:~/bin:~/python/bin
但是,这失败了:
W:\programming\wreckcreations-site\test-hg>ssh name@host echo $PATH
Enter passphrase for key '/home/Owner/.ssh/id_rsa':
/usr/local/bin:/bin:/usr/bin
注意缺少的PATH选项
sh配置文件的专有名称是什么?注意:我没有root访问权限,并且不希望将此权限应用于其他用户。还有另一种方法吗?
编辑:似乎/bin/sh
链接到bash
,这并不奇怪。令人惊讶的是,我的个人资料仍然被忽略。有什么建议?
似乎值得注意的是,您在问题中提到的命令
ssh name@host echo $PATH
几乎永远不会有用。$ PATH的变量替换由本地shell完成,并传递给ssh,后者在远程系统上执行echo以打印path变量的内容,因为它在本地系统上扩展了。这是我在Mac和网络上的Linux计算机之间执行类似操作的示例:
LibMBP:~ will$ echo $PATH
/opt/local/bin:/opt/local/sbin:/Users/will/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin
LibMBP:~ will$ ssh warren echo $PATH
will@warren's password:
/opt/local/bin:/opt/local/sbin:/Users/will/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin
LibMBP:~ will$ ssh warren 'echo $PATH'
will@warren's password:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LibMBP:~ will$
请注意,我需要如何使用引号来防止本地shell扩展变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句