Articles of bash

Bash脚本启动进程,等待随机,终止进程,重启

我是一个绝对的初学者,并试图创build一个bash脚本来随机化命令行应用程序的开始和退出。 我打算在启动(Crunchbang)后自动启动脚本,在autostart.sh中稍微延迟一下(可在http://interwebworld.co.uk/2011/10/23/how-to-launch-programs-自动启动在crunchbang-linux / ) (sleep 300s && /home/myuser/Scripts/randomizer.sh) & 这实际上就是我需要在randomizer.sh脚本中完成的一些伪代码: start applicationfile wait a random period of time if applicationfile is still running kill its process wait a random period of time exit this script and restart this script else exit this script and restart this script randomizer.sh,因为我到目前为止,我会欢迎一些帮助,如下(包含伪代码的残余),并在这里find睡眠延迟: http : //blog.buberel.org/2010/ 07 / HOWTO随机睡眠持续时间的function于bash.html /path/to/applicationfile […]

sed仅在第一个匹配时插入

更新: 使用sed,我怎样才能在每个文件的关键字的第一个匹配上插入(不是SUBSTITUTE)一个新行。 目前我有以下,但这插入每一行包含匹​​配的关键字,我希望它只插入新插入的行只有在文件中find的第一个匹配: sed -ie '/Matched Keyword/ i\New Inserted Line' *.* 例如: myfile.txt文件: Line 1 Line 2 Line 3 This line contains the Matched Keyword and other stuff Line 4 This line contains the Matched Keyword and other stuff Line 6 变成: Line 1 Line 2 Line 3 New Inserted Line This line contains the […]

读两个关键字之间的线

有人可以build议如果我必须阅读两个关键字之间做什么 *System_Power 1 1.2 1.8 2 *System_Terminate 在这种情况下,asnwer会是 1 1.2 1.8 2 我尝试使用awk awk '$0 =="*System_Power" # start printing when 1st field is *System_Power $0 != "*System_Terminate"{ # until reach the *System_Terminate print; } ' powerSummary > reportedFailure.k # Read from file powerSummary and pipe to reportedFailure.k exit 上面的数据在powerSummary文件的中间。 我会感谢你的更正。

符号链接 – 性能打击?

出于部署的原因,使用符号链接稍微容易一些,但是这些将用于我所有网站的核心文件和configuration,每天可以访问数千次。 我是否更明智地将文档移动到服务器上的正确位置(稍微更有问题的部署),而不是对所有内容使用符号链接(轻微的性能下降?)

壳GNU-Screen -X的东西问题

OPTIONS="java -Xms1024M -Xmx1024M -jar craftbukkit.jar" PROCESS=server01 screen -dmS $PROCESS $OPTIONS nogui # Starting the application screen -x $PROCESS -X stuff `printf "stop\r"` # Closing the application screen -x $PROCESS # Attaching to the terminal of the application 应用程序在一开始工作正常,但是我得到的问题stuff 'printf "stop/r"'我刚启动似乎不工作,等待一段时间,然后尝试用上面的命令停止它。 但奇怪的是,如果我做了screen -x $PROCESS并分离( ctrl-A & ctrl-D ),然后使用Stop命令,它确实可以工作。 所以有没有办法来stuff printf没有screen -x $PROCESS ?

为什么在按Ctrl + C时Linux总是输出“^ C”?

我一直在研究Linux的信号。 我已经完成了一个testing程序来捕获SIGINT。 #include <unistd.h> #include <signal.h> #include <iostream> void signal_handler(int signal_no); int main() { signal(SIGINT, signal_handler); for (int i = 0; i < 10; ++i) { std::cout << "I'm sleeping…" << std::endl; unsigned int one_ms = 1000; usleep(200* one_ms); } return 0; } void signal_handler(int signal_no) { if (signal_no == SIGINT) std::cout << "Oops, you […]

如何在不修改FreeBSD,OpenBSD和Linux的情况下使用bash脚本?

对不起,标题可能有点刺激,但我什么都不知道。 无论如何,我想要一个bash脚本在FreeBSD,OpenBSD和Linux上工作,而不用修改它,但是bash不在Linux和BSD中的相同位置。 所以,如果我写#!/bin/bash那么它将不能在BSD上工作,因为bash shell位于/usr/local/bin/bash中。 有什么解决scheme让这个脚本同时工作吗? 还是我真的需要运送两个不同path的脚本…?

如何轻轻地杀死Linux / OS X上的Firefox进程

我使用Firefox做了一些自动化操作,虽然我可以从shell打开Firefox窗口,但我无法正确终止它。 如果我用kill -3或者kill -2命令kill Firefox进程,那么下次我打开一个新的Firefox窗口时,会询问我是否想以安全模式运行。 我明白,调用kill -9可能会混淆Firefox,所以它会尝试运行在安全模式,但-3应该没问题。 你有什么想法如何轻轻地告诉Firefox正确closures?

在bash脚本中使用条件来检查string参数

我正在尝试编写我的shell脚本thing.sh ,以使它成为一个可执行文件,并使用单个字母“A”运行它,如下所示: $ ./thing.sh A 我得到输出 A 如果参数1不是A,我需要输出 Not A 这是我的代码到目前为止: #!/bin/bash if [ "$1" -eq "A"] then echo "A" else echo "Not A" fi 无论我input什么, ./thing.sh: line 3: [:missing `]' Not A 我正在尝试我希望检查一个或几个字母的东西,并将其与字母A进行比较; 有人能告诉我什么,我错过了这个工作? 谢谢

如何列出目录树中的所有二进制文件扩展名?

我需要build立目录树中二进制文件的所有文件扩展名列表。 主要问题将是如何区分一个文本文件和二进制文件,其余的应该是蛋糕。 编辑 :这是我得到的最接近,有更好的想法? find . -type f|xargs file|grep -v text|sed -r 's:.*\.(.*)\:.*:\1:g'