Tag: bash

在bash中计数(非空白)行代码

在Bash中,如何计算项目中非空行代码的数量?

如何评估来自bash / shell脚本的http响应代码?

我有这样的感觉,我错过了明显的,但没有成功的man [curl|wget]或谷歌(“http”使这样一个糟糕的search术语)。 我正在寻找一个快速和肮脏的修复我们的Web服务器之一,经常失败,返回错误消息的状态代码500。 一旦发生这种情况,需要重新启动。 由于根本原因似乎很难find,我们正在寻求一个快速修复,希望能够弥补时间,直到我们可以真正解决它(该服务不需要高可用性) build议的解决scheme是创build一个每5分钟运行一次的cron作业,检查http:// localhost:8080 / 。 如果这返回与状态代码500,networking服务器将被重新启动。 服务器将在一分钟内重新启动,因此不需要检查已经运行的重新启动。 有问题的服务器是一个Ubuntu 8.04最小安装,只安装了足够的软件包来运行它当前所需的。 没有必要在bash中完成这个任务,但是我希望它能在这样一个最小的环境中运行,而不需要安装更多的解释器。 (我对脚本非常熟悉,将http状态代码分配给环境variables的命令/选项就足够了 – 这是我所查找和找不到的。)

使用tar,gz,zip或bzip2分割文件

我需要压缩大约17-20 GB的大文件。 我需要将它分成几个文件,每个文件大约1GB。 我通过Googlesearch了一个解决scheme,并find了使用split和cat命令的方法。 但是他们根本不适合大文件。 此外,他们不会在Windows中工作; 我需要在Windows机器上解压缩它。

任何方式退出bash脚本,但不能退出terminal

当我在shell脚本中使用exit命令时,脚本将终止terminal(提示符)。 有什么方法可以终止脚本,然后停留在terminal? 我的脚本run.sh预计将通过直接来源或来自另一个脚本来执行。 编辑:更具体地说,有两个脚本run2.sh作为 … . run.sh echo "place A" … 和run.sh as … exit … 当我运行它. run2.sh . run2.sh ,如果它在run.sh中inputexit代码行,我希望它停止到terminal,并留在那里。 但是使用exit ,整个terminal被closures。 PS:我试图使用return ,但echo codeline仍然会被执行….

如何使程序从ssh注销后继续运行?

可能重复: Linux:closuresSSH客户端后,防止后台进程停止 我有一个程序需要花费很多时间才能完成。 它通过ssh作为root运行。 我希望它在注销后继续运行,这是可能的,我将如何实现这一目标?

在bash脚本中返回值

我正在使用一个bash脚本,我想执行一个函数来打印返回值: function fun1(){ return 34 } function fun2(){ local res=$(fun1) echo $res } 当我执行fun2 ,它不打印“34”。 这是为什么?

Bash脚本并行处理命令

我有一个bash脚本,看起来像这样: #!/bin/bash wget LINK1 >/dev/null 2>&1 wget LINK2 >/dev/null 2>&1 wget LINK3 >/dev/null 2>&1 wget LINK4 >/dev/null 2>&1 # .. # .. wget LINK4000 >/dev/null 2>&1 但处理每一行直到命令完成,然后移动到下一个非常耗时,我想一次处理20行,然后当他们完成了另外20行处理。 我想到了wget LINK1 >/dev/null 2>&1 &发送命令到后台进行,但是这里有4000行,这意味着我会有性能问题,更不用说限制在多less个进程中我应该同时开始,所以这不是一个好主意。 我现在正在考虑的一个解决scheme是检查其中一个命令是否仍在运行,例如20行之后我可以添加这个循环: while [ $(ps -ef | grep KEYWORD | grep -v grep | wc -l) -gt 0 ]; do sleep 1 done 当然在这种情况下,我将需要追加&到行的末尾! […]

如何使用Bash创build一个文件夹,如果它不存在?

#!/bin/bash if [!-d /home/mlzboy/b2c2/shared/db]; then mkdir -p /home/mlzboy/b2c2/shared/db; fi; 这似乎并不奏效。 谁能帮忙?

如何将标准错误存储在Bash脚本的variables中

假设我有如下的脚本: useless.sh echo "This Is Error" 1>&2 echo "This Is Output" 我有另一个shell脚本: alsoUseless.sh ./useless.sh | sed 's/Output/Useless/' 我想捕获“这是错误”,或从useless.sh中的任何其他标准错误,变成一个variables。 我们称之为错误。 请注意,我正在使用stdout的东西。 我想继续使用stdout,因此在这种情况下,将stderrredirect到stdout是没有用的。 所以,基本上,我想要做的 ./useless.sh 2> $ERROR | … 但是这显然不起作用。 我也知道我能做到 ./useless.sh 2> /tmp/Error ERROR=`cat /tmp/Error` 但这是丑陋的和不必要的。 不幸的是,如果没有答案出现在这里,我将不得不做的。 我希望有另一种方式。 任何人有更好的想法?

在Bash命令提示符处添加git分支

我试图添加我目前正在工作(签出)在bash提示没有成功的git分支..( 同时保持我的当前path显示活动目录/文件完好无损)我有一个.bashrc文件在我家,但我也看到很多人提到.profile文件..