草庐IT

BASH_HISTORY

全部标签

bash - 继续从 tcp 服务器读取,直到收到特定消息

我有以下代码:echo"abouttoechostuff1";echo-e"foo\n"|nclocalhost"${ql_server_port}"|whilereadresponse;doecho"responsefromserver:$response";if[["$response"=="released"]];thenecho"quicklock:Lockwasreleased.";return0;fidone;echo"abouttoechostuff2";这是记录的内容:abouttoechostuff1responsefromserver:received_dataab

bash - 如何从/dev/tcp 捕获 Bash 中的错误?

我对如何使用trap有一定的了解,但我终生无法弄清楚如何捕获从/dev/tcp返回的错误。当运行“cat如果有人对如何在这种情况下使用trap有任何见解,那将非常有帮助。我目前的处理方式是这样的:if[$?!=0];thenecho"error"fi这让我能够在发生错误时执行操作,但这是我知道如何处理这个特定问题的唯一方法。这不是正确的方法,我知道,但这是我唯一可以开始工作的方法。如果有人知道如何在Bash中解决这个问题,那就太好了。不,我不能改用netcat。 最佳答案 错误直接来自Bash而不是来自cat。因此重定向运算符是无用

bash - 如何通过 TCP 匹配模式?

我正在尝试编写监控脚本。它应该连接到我服务器上的某个端口,读取输出,如果输出是预期值,则打印1,否则打印0。我正在研究涉及cat的解决方案,但解决方案让我望而却步。也许涉及期望的东西?我更喜欢bash脚本解决方案。帮助表示赞赏! 最佳答案 所有其他解决方案都使用netcat来提供网络支持,但如果你的bash足够新并且使用--enable-net-redirections编译,你可以取消它(据我所知可以说,除了Debian和Ubuntu;如果我需要调整,请随时发表评论。然后grep可以进行实际测试。它的返回代码是一个shell代码(0

bash - 什么可以防止频繁切换具有多个接口(interface)的机器的默认源 ip

目标是在具有多个接口(interface)和实时ip的机器上频繁更改默认传出源ip。我根据其文档使用iproutereplacedefault并让脚本循环运行一段时间。它会在一段时间内很好地更改源IP,但随后所有对机器的互联网访问都将丢失。它必须从网络界面远程重启才能正常工作有什么东西可能会阻止它稳定工作吗?我在不止一台服务器上试过这个吗?下面是一个最小的例子#extractallcurrentlyactivesourceipsexceptloopbackIPs="$(ifconfig|grep'inetaddr:'|grep-v'127.0.0.1'|cut-d:-f2|awk'{p

bash - 如何获得第一个可用的 TCP 端口来监听?

出于测试目的,我想将我的服务附加到某个TCP端口。然后,我将调用此端口,确保服务正常运行,然后将其关闭。我需要找到一种方法来生成这样的端口号,因为我不能使用固定的端口号——测试可能会并行运行。可能吗? 最佳答案 我是这样做的:#include#include#include#include#includeintmain(){structsockaddr_inaddr;socklen_tlen=sizeof(addr);addr.sin_port=0;intsock=socket(AF_INET,SOCK_STREAM,0);if(s

bash - 如何用 Bash 制作 Echo 服务器?

如何使用nc、echo、xargs等工具编写echo服务器bash脚本,以便同时处理来自多个客户端的请求,每个客户端都具有持久连接?到目前为止我想到的最好的是nc-l-p2000-c'xargs-n1echo'但它只允许一个连接。 最佳答案 如果您使用ncat而不是nc,您的命令行可以在多个连接下正常工作,但(如您所指出的)没有-p。ncat-l2000-k-c'xargs-n1echo'ncat可在http://nmap.org/ncat/获得.附言对于原始的Hobbit'snetcat(nc),不支持-c标志。更新:现在需要-k

bash - 带有默认值和 killall bash 命令的 NSTask

我正在尝试在Cocoa应用程序中运行以下两个bash命令:defaultswritecom.apple.finderCreateDesktopfalsekillallFinder使用NSTask,我有以下Swift代码来在单击按钮时执行命令:letcommands=["-c","defaultswritecom.apple.finderCreateDesktopfalse","-c","killallFinder"]lettask=NSTask()task.launchPath="/bin/bash"task.arguments=commandstask.launch()运行代码时我没

ios - SecurityError(DOM 异常 18): Blocked attempt to use history. replaceState()... Angular 5

问题我收到以下错误:[Error]ERROR–Error:Uncaught(inpromise):SecurityError(DOMException18):Blockedattempttousehistory.replaceState()tochangesessionhistoryURLfromfile:///Users//Library/Developer/CoreSimulator/Devices//data/Containers/Bundle/Application//ios-shell.app/public/index.htmltofile:///Users//Library

java - 为什么 InetAddress.getLocalHost().getHostName() 返回的值与 bash "hostname"不同?

我有一个build.gradle任务,它在我的开发箱中像冠军一样工作,生成一个属性文件,该文件记录了生成生成的机器的名称。逻辑很简单...defhostname=InetAddress.getLocalHost().getHostName();在我的开发箱中,这总是产生与我从bashshell中生成主机名相同的值。bobk-mbp:DM_Serverbobk$hostnamebobk-mbp.local然而,在我们的jenkinsCI服务器上,bash主机名返回一件事,但我调用InetAddress.getLocalHost().getHostName();返回其他东西。需要在jenk

java - 在 Java 中运行 Bash 命令

我有以下类(class)。它允许我通过java执行命令。publicclassExecuteShellCommand{publicStringexecuteCommand(Stringcommand){StringBufferoutput=newStringBuffer();Processp;try{p=Runtime.getRuntime().exec(command);p.waitFor();BufferedReaderreader=newBufferedReader(newInputStreamReader(p.getInputStream()));Stringline="";w