我想出了一个很酷的脚本,它将产生我需要的输出,但它只显示在屏幕上,所以我必须复制,然后粘贴命令以使它们执行.这是我的脚本的缩写版本:
#!/bin/bash
runc=/etc/csf/csf.pl -d
for IP in `tail -400 iptext.txt`
do
cc=`geoiplookup $IP`
echo -e $runc $IP $cc | grep Algeria
echo -e $runc $IP $cc | grep Argentina
echo -e $runc $IP $cc | grep Armenia
echo -e $runc $IP $cc | grep Azerbaijan
echo -e $runc $IP $cc | grep Bolivia
echo -e $runc $IP $cc | grep Brazil
done
Run Code Online (Sandbox Code Playgroud)
好吧,所以它遍历iptext.txt中的IP地址列表,然后对每个地址进行geoIP查找,如果(在这个例子中)列表中有两个geoIP匹配,让我们说亚美尼亚和巴西,我会看到输出像这样的shell窗口:
/etc/csf/csf.pl -d 46.162.242.17 GeoIP Country Edition: AM, Armenia
/etc/csf/csf.pl -d 200.147.38.50 GeoIP Country Edition: BR, Brazil
Run Code Online (Sandbox Code Playgroud)
这很好,但我想要的不仅仅是输出,我实际上想要 …
I want to print double quotes using echo statement in shell programming.
Example:
echo "$1,$2,$3,$4";
Run Code Online (Sandbox Code Playgroud)
prints xyz,123,abc,pqrs
How to print "xyz","123","abc","pqrs";
I had tried to place double quotes in echo statement but its not being printed.
scala中的所有"服务器"示例都使用actor,reactor等...
有人可以告诉我如何编写一个死的简单回显服务器和客户端,就像下面的服务器和客户端的 python示例:
# A simple echo server
import socket
host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(size)
if data:
client.send(data)
client.close()
Run Code Online (Sandbox Code Playgroud)
# A simple echo client
import socket
host = 'localhost'
port = 50000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello, world')
data = s.recv(size)
s.close()
print 'Received:', data
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用netcat来了解有关HTTP如何工作的更多信息.我想用bash或Perl编写一些脚本,但是在测试的早期我遇到了一个绊脚石.
如果我直接从提示符运行netcat并输入HEAD请求,它会工作,我收到我正在探测的Web服务器的标题.
这有效:
[romandas@localhost ~]$ nc 10.1.1.2 80
HEAD / HTTP/1.0
HTTP/1.1 200 OK
MIME-Version: 1.0
Server: Edited out
Content-length: 0
Cache-Control: public
Expires: Sat, 01 Jan 2050 18:00:00 GMT
[romandas@localhost ~]$
但是当我将相同的信息放入文本文件并通过管道或重定向将其提供给netcat时,为了编写脚本,它不会返回标题.
文本文件由HEAD请求和两个换行符组成:
HEAD / HTTP/1.0
通过echo或printf发送相同的信息也不起作用.
$ printf "HEAD / HTTP/1.0\r\n"; |nc -n 10.1.1.2 80 $ /bin/echo -ne 'HEAD / HTTP/1.0\n\n' |nc 10.1.1.2 80
我有什么想法我做错了吗?不确定它是否是bash问题,echo问题或netcat问题.
我通过Wireshark检查了流量,成功请求(手动输入)在第二个数据包中发送尾随换行符,而echo,printf和text文件方法将换行符保留在同一个数据包中,但我不确定是什么原因造成的这种行为.
我有一个Perl脚本,要求用户输入密码.我怎样才能回复'*'代替用户输入的字符,因为他们输入的字符?
我正在使用Windows XP/Vista.
我有一个对象BIRD然后有[0]到[10]并且每个数字都有一个像"bug"或"beetle"或"gnat"这样的子标题以及每个数字的值.
我想要打印
BIRD
[0]
bug = > value
Run Code Online (Sandbox Code Playgroud)
我无法在任何地方找到如何做到这一点 - 有关于PUBLIC和PRIVATE和CLASS的讨论,这就是我脱落的地方
是否有一个命令不仅仅是回声它的参数,而且如果需要也会逃避它们(例如,如果参数包含空格或特殊字符)?
我需要它在一些shell魔法中,而不是在一个脚本中执行命令我回应命令.此输出通过管道传递给python脚本,该脚本最终以更有效的方式执行命令(它加载实际目标python脚本的main()方法并使用给定的参数执行它,并且通过计算数据之间的其他参数进行缓存运行main()).
而不是我当然可以将所有shell魔法移植到python,在那里我不需要管道任何东西.
给定一个具有实例foo的特定类,有没有办法以echo foo;自定义方式使用PHP ?
class TheClass {
public $Name;
public $Number;
function MrFunction() { /* bla bla bla */ }
}
$foo = new TheClass();
echo $foo;
Run Code Online (Sandbox Code Playgroud)
据我所知,你不能超载echo,我意识到我可以很容易地$foo->MrFunction()完成这项工作.但是我想知道是否有一种方法来编码
echo $foo打印出$foo->Name和$foo->Number.
我们使用的是PHP 5.2.6版,但升级不是问题.
是.我知道我不应该用它来编写脚本.是.这是垃圾.我确实是个傻瓜.
然而.
我想查看脚本正在执行的命令,以便进行调试.我认为你在bash脚本中使用set -x或set -v获得此效果.
所以,例如,如果脚本是
#!/bin/tcsh
echo "Hello"
Run Code Online (Sandbox Code Playgroud)
然后当它跑的时候,我会看到
echo "Hello"
Hello
Run Code Online (Sandbox Code Playgroud) 当我输入echo $ JAVA_HOME时,我得到$ JAVA_HOME而不是jdk的位置.我正确地设置了环境变量的路径:
变量名:JAVA_HOME变量值:C:\ Program Files\Java\jdk1.7.0_25
我究竟做错了什么?