2015-11-18 73 views
1

如何在不使用nano命令的情况下编辑保存在远程服务器上(来自终端)的文件?Bash脚本 - 如何自动执行nano命令?

下面的代码注入

import sys 
sys.path.append('/opt/lib/python2.5/site-packages') 

我试图解决写不使用使用wget +猫到文件位置纳米命令的这个问题,它似乎工作。

wget https://REMOTE_SERVER_URL/HTTPRequest.py 
cat HTTPRequest.py > /opt/share/pyload/module/network/HTTPRequest.py 

但这里也有一些错误,之后该脚本正确保存 “pyload”

wget https://REMOTE_SERVER_URL/pyload 
cat pyload > /etc/init.d/pyload 
chmod 755 /etc/init.d/pyload 

然后它说

update-rc.d: warning: /etc/init.d/pyload missing LSB information 
update-rc.d: see <http://wiki.debian.org/LSBInitScripts> 
Adding system startup for /etc/init.d/pyload ... 
    /etc/rc0.d/K20pyload -> ../init.d/pyload 
    /etc/rc1.d/K20pyload -> ../init.d/pyload 
    /etc/rc6.d/K20pyload -> ../init.d/pyload 
    /etc/rc2.d/S20pyload -> ../init.d/pyload 
    /etc/rc3.d/S20pyload -> ../init.d/pyload 
    /etc/rc4.d/S20pyload -> ../init.d/pyload 
    /etc/rc5.d/S20pyload -> ../init.d/pyload 

EDIT23NOV:清除代码

+1

也不会影响的事情,而是一个适当的第一行是'#!/ bin中/ bash'(没有尾随'# 'char)。此外,你必须更具体地说“这不行”。任何错误消息?或者只是文件不被传输是你唯一的症状?但很明显,试图解决你的问题。好Q.祝你好运。 – shellter

+0

这不是''wget''的错误信息,是一个警告信息和''update-rc.d''的正常输出,脚本下面4行。在顶部使用'#!/ bin/bash -x''启用bash调试模式,所以你会看到命令和输出在 –

+0

以下'sed:can not read opt/share .....'你不想要'/ opt/share/...'?祝你好运。 – shellter

回答

2

别t使用nano,可以使用sed,可以是类似

sed -i '/import pycurl/i \ 
import sys \ 
sys.path.append("/opt/lib/python2.5/site-packages")' opt/share/pyload/module/network/HTTPRequest.py 

我没有测试它,所以也许你应该逃避附加内的斜线。

而且第一,做文件的备份,因为-i修改将覆盖文件

+0

没问题,你能告诉我你在哪里遇到问题吗?我刚刚尝试使用sed命令,因为我发布了它,并且工作完美 –