让我们说:
a = r''' Example
This is a very annoying string
that takes up multiple lines
and h@s a// kind{s} of stupid symbols in it
ok String'''
Run Code Online (Sandbox Code Playgroud)
我需要一种方法在"This"和"ok"之间进行替换(或者只是删除)和文本,这样当我调用它时,现在等于:
a = "Example String"
Run Code Online (Sandbox Code Playgroud)
我找不到任何似乎有效的通配符.任何帮助深表感谢.
这将是一个很长的,所以提前道歉..
我正在使用shellinabox为我的团队编写基于Web的会话管理器.目前我按照我想要的方式工作,每个新连接都在另一个端口上启动一个新的shellinaboxd实例(如果需要).但PuTTY连接管理器(我们目前使用的)我无法工作的一件事是自动登录命令.建立连接后,我们会自动传递我们的凭据,然后是我们可能使用的任何其他登录后命令(cd/tmp等).
有了提琴手,我可以看到我制作的每一个按键发送根目录的帖子.例:
http://localhost:1234/?width=190&height=52&session=J793zjWa6gtKXEeV%2FeyY7g&keys=0D
Run Code Online (Sandbox Code Playgroud)
所以我认为,如果我捕获了那个会话令牌,我可以用wget或curl测试,以便将帖子数据发送到该会话.不起作用......
我的问题是,任何人都可以给我任何关于下一步尝试的指示吗?最后,对于我的POC,我想在页面上有一个按钮(我将链接嵌入到另一个页面中),这将允许我按下,并发送按键以获取字符串(我可以将字符串处理为十六进制)转换)直接到控制台视图.我显然不在这个方面,因为我不知道下一步该尝试什么.我知道shellinabox使用vt100作为它的控制台.我查看了它的JS,但找不到js中发送键击的位置.此外,一旦我打开嵌入了shellinabox的页面,我该如何拉出它正在使用的当前"会话"令牌?
任何帮助/指针将不胜感激.
我有预期的工作,但是在从中打印输出时遇到了问题。在下面的测试脚本中,它创建ssh连接,然后发送sudo su-,然后输入密码,然后发送需要sudo访问权限的行(我还向其中添加了p.interact()几次)确保它是根目录)。我遇到的问题是返回我运行的命令的输出。最后,我要运行一些顶级命令,一些du -h和其他(更为复杂的)空格命令。但是目前,当它尝试打印p.before时,我得到:
Traceback (most recent call last):
File "./ssh.py", line 37, in <module>
print p.before()
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的脚本(已编辑以删除通行证等)
#!/usr/bin/env python
import pexpect
import struct, fcntl, os, sys, signal
def sigwinch_passthrough (sig, data):
# Check for buggy platforms (see pexpect.setwinsize()).
if 'TIOCGWINSZ' in dir(termios):
TIOCGWINSZ = termios.TIOCGWINSZ
else:
TIOCGWINSZ = 1074295912 # assume
s = struct.pack ("HHHH", 0, 0, 0, 0)
a = struct.unpack ('HHHH', fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ , s))
global global_pexpect_instance
global_pexpect_instance.setwinsize(a[0],a[1])
ssh_newkey = 'Are you …Run Code Online (Sandbox Code Playgroud) 我想我从根本上错过了一些东西.我正在学习红宝石,并且最近和Lita一起玩,并写了(我的第一个)一个简单的小宝石,以获得与机器人的一些方向/距离.我遇到的问题是在我的gem中放置一个gem依赖项.为了工作,我的宝石需要'rest-client'宝石.我在哪里将它放在我的代码中,以便它可用于我的Directions类?目前,要让它运行,我需要在我的机器人实际的gemfile中的gem.当我捆绑exec lita时,它显然可供我的宝石使用......但如果我从那里删除它,我无法让它在我的宝石中的任何地方工作..我错过了什么?在这里,如果有人想阅读代码并告诉我应该在哪里添加它:
https://github.com/cashman04/lita-directions
编辑:我添加了像spickermann建议的依赖.然后必须添加require'rest-client'到我的directions.rb.不完全确定这是否是正确的方法,但它现在有效.感谢spickermann的帮助
a=1
b=2
c=3
for db in $a $b $c; do
echo VARIABLE NAME
blah
blah
blah
Run Code Online (Sandbox Code Playgroud)
我需要这个用于我正在编写的脚本.我在变量的数据库名称的顶部设置了一些客户端名称.我正在运行ps -ef和其他一些东西,但我需要它来回显它在循环中的客户端名称.所以在上面的例子中,它会回显"a",然后是其他命令,然后是第二个循环回声"b".....等
我想尝试做类似下面的事情:
for a in apple orange grape; do
${!a}="blah"
done
echo $apple
blah
Run Code Online (Sandbox Code Playgroud)
可能?
a="grep ssh | grep -v grep"
ps -ef | $a | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成上述工作?我有一个部分,我不仅要传递grep术语,但可能传递多个grep术语,这意味着我需要将"term1 | grep term2"作为变量传递.
编辑:
另一个.下面的回答对我来说非常合适.谢谢你,先生!
我试图在python中重新创建一些我的ruby代码(不能等到lambda支持ruby !!),而且我正在运行一个问题,在数组上返回过滤结果的指标(我想我在说这是正确的).这是一些示例代码:
array = [200,100,150,500,25,650,175]
res = filter(lambda x: x < 200, array)
print res
[100, 150, 25, 175]
Run Code Online (Sandbox Code Playgroud)
但是我真的需要它来返回与过滤器匹配的每个元素的索引并得到:
[1,2,4,6]
Run Code Online (Sandbox Code Playgroud)
在python中有一个简单的方法吗?我打算尝试numpy,但是easyinstall在尝试安装时变得疯狂.
我有:
function makeAjaxRequest() {
var url = '/queryjob/dbname/ip';
$.ajax(url,
{
success: alert(response)
});
}
Run Code Online (Sandbox Code Playgroud)
当我在这个网址上执行正常的浏览器请求时,我得到43的响应(现在只是一个测试响应)
当我点击按钮我必须运行此功能时,没有任何反应.我根本没有在日志中看到get请求.我有一些愚蠢的语法错误或什么?我对js和ajax很新.我有另一个函数可以在我得到一个url并对html响应代码执行操作,但是到目前为止这个已经杀了我.
所以我有一个数组的json数据看起来像这样:
[{
"first_name": "Joe",
"last_name": "Smith",
"numbers": [1,2,3,4,5]
}, {
"first_name": "Jane",
"last_name": "Doe",
"numbers": [6,4,1,35,2]
}, {
"first_name": "Mike",
"last_name": "Everyman",
"numbers": [8,5,3,2,4,5]
}]
Run Code Online (Sandbox Code Playgroud)
如何只选择last_name = Doe的数组项?我正在尝试将我在ruby中编写的一些代码转换为python,因为lambda不支持ruby :(我的ruby代码看起来像:
match = data.select {|x| x[:last_name] == 'Doe'}
Run Code Online (Sandbox Code Playgroud)
哪个返回:
{
"first_name": "Jane",
"last_name": "Doe",
"numbers": [6,4,1,35,2]
}
Run Code Online (Sandbox Code Playgroud)
另外,我知道由于数据是json格式,因此在技术上无法在ruby中工作,但是我将其从哈希转换为json,并且不希望将其改回,因为基本思想仍然相同。
import os
test = os.system("ls /etc/init.d/ | grep jboss- | grep -vw jboss-")
for row in test:
print row
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这给出了TypeError:迭代非序列错误.
当我在没有for循环的情况下进行打印测试时,它会给出一个jboss实例的列表,并在底部加上一个"0".哎呀?
我正在编写一个偶尔运行的脚本,并从 mysql 数据库中提取作业。当我这样做时,我运行如下:
job="/tmp/blah.sh arg1 arg2 arg3"
eval $job
Run Code Online (Sandbox Code Playgroud)
我需要它在运行 eval 后立即继续,而不是等待其他脚本完成。有什么简单的方法可以做到这一点?我试过
exec $job &
Run Code Online (Sandbox Code Playgroud)
基于我在这里找到的一个线程,但这恰恰相反,它运行了脚本,然后在“作业”完成后停止,并停止了我的整个脚本。
编辑:
我在分离我的 args 和脚本时遇到的问题是作业有多行,看起来像:
/tmp/blah1.sh arg1 arg2 arg3 arg4
/tmp/blah2.sh null null null arg4
/tmp/blah3.sh arg1 null arg3 arg4
Run Code Online (Sandbox Code Playgroud)
所以目前我只运行它: eval $jobs :如果只有一行,如果有多个,我会做一个 for 循环并运行每一行。在 for 循环中运行它以提取和分离 args 和脚本的最佳方法是什么?