Articles of bash

计算bash中有多less行继续到下一行?

如何找出多less行继续在bash中的下一行? 我有一个bash脚本,我需要计算多less行继续下一行。

用groovy在linux shell执行long命令?

如何用groovy执行长命令? 当我在我的linuxterminal上执行这个命令时,我得到了我想要的进程的正确进程ID。 使用groovy我得到一个空的回报。 这是我已经尝试过的: def p = "ps aux | grep 'unit 1' | grep -v grep | awk '{print $2}'".execute() p.waitFor() println p.text // this is empty, but it shouldn't groovy的正确执行应该如何? 如何在groovy中获得正确的进程ID?

在shell脚本中返回值争用条件

在使用wget的shell脚本中获取它的返回值。 例: wget www.google.com if [ $? = 0 ] then echo "success" else echo "fail" fi Linux运行大量的shell脚本,包括上面的一个。 假设在shell脚本中执行了wget之后,操作系统将会控制其他一些shell脚本,当再次开始执行shell脚本时,那么$ ? 返回值不会是wget返回值。 有没有什么办法可以避免在Linux中的shell脚本返回值竞争条件? 问候, Sukhdeep辛格

Nagios – bash脚本的状态UNKNOWN

我试图通过Nagios使用bash脚本来监控我的EC2 loadblancer。 下面是我试图用Nagios实现的脚本。 #!/bin/sh ST_OK=0 ST_WR=1 ST_CR=2 ST_UK=3 LB_NAME="xxx" AWS_REGION="us-west-2" PROFILE="default" CMD=$(/usr/bin/aws elb describe-instance-health –region ${AWS_REGION} –load-balancer-name ${LB_NAME} –profile ${PROFILE}) if [ $? -eq 0 ]; then IN_SERVICE_COUNT=$(echo ${CMD} | jq -c '.InstanceStates[].State' | grep InService |wc -l) TOTAL_COUNT=$(echo ${CMD} | jq -c '.InstanceStates[].State' | wc -l) if [ ${IN_SERVICE_COUNT} -eq 0 ]; then NAGIOS_STATE=CRITICAL […]

需要使用一个参数或另一个getopts

while getopts gpr: | gpd: name do case $name in g) echo " -g";; p) echo " -p";; r) echo " -r with '$OPTARG'";; d) echo " -d with '$OPTARG'";; esac done 我知道这是写错了。 我想这样写,所以它会显示我需要做的事情。 具有g,p,d或r选项的脚本。 关键是那个OR。 我试图谷歌,阅读手册,发现很多简单的例子。 问题是如果有办法做到这一点或getopts不支持这种行为。

在shell脚本中退出尾巴-f

我似乎无法做到这一点。 这是剧本。 tail -fn0 nohup.out | while read line; do if [[ "${line}" =~ ".*ERIKA.*" ]]; then echo "match found" break fi done echo "Search done" 即使在find匹配之后,代码回显“search完成”也不会运行。 我只想要在find匹配项时运行其余的代码。 我还没有做到。 对不起,我是新的日志监控。 有没有什么解决方法呢? 我要通过Jenkins运行脚本,所以代码应该是自由stream动的,不应该要求任何用户交互。 请帮忙,谢谢。

Linux命令variablesreplace。 帮助表示赞赏

我想压缩所有文件/目录,同时排除variables$ excludes中列出的几个。 但是下面的代码不排除这些文件。 请帮忙! 谢谢! excludes='"dir1/*" "dir2/*" "dir3/*"' zip -r zipfile * -x $excludes

在bash脚本中分配“at”命令的输出

我试图捕获Bash脚本中的“at”命令的结果。 捕获命令输出的各种方法似乎不起作用,但我不确定它是命令中的pipe道还是别的东西。 echo $cmd | at $deployat 产生输出 job 42 at 2014-04-03 12:00 而且我正在努力争取时间。 不过,我期望的是类似的东西 v=$($cmd | at $deployat) echo $v 会工作,或 v=$(echo $cmd | at $deployat) echo $v 要么 v=`$cmd | at $deployat` echo $v 但是,所有这些都将剧本挂起,看起来像是在等待一些input。 什么是正确的方法来做到这一点,最终像一个variables: 2014-04-03 12:00 ============================ 编辑: 一个可能的并发症是$ cmd带有标志: ls -l 例如。 扩展的命令可能是这样的: echo ls -l | at noon tomorrow […]

按计划linux复制目录

我正在寻找一个脚本的帮助,这将允许我复制一个目录的内容,或者整个目录到一个时间表的另一个目录,或者当新的文件到达源代码时。 例如: /stuff/folder1/file.txt 复制到: /stuff/folder2/file.txt 无论是新文件到达还是重复计划。 我使用Centos机器。

试图运行一个bash脚本来源于另一个脚本运行的源代码

我有一个bash脚本,最终会调用另一个bash脚本。 每个脚本必须以“源代码”运行。 为了简单起见,我总结了下面的问题点 script1.sh : source script2.sh script2.sh : export someVar=something 运行一切: source script1.sh arg1 arg2 问题是当script2.sh从script1.sh运行时,参数也被复制,所以script2.sh实际上运行如下: source script2.sh arg1 arg2 script2.sh失败,因为提供了这些参数。 有没有什么办法可以从脚本1运行script2而不传递这些参数 ? 运行script2而不使用source命令不是一个选项,除非有另外一种方法让它运行并让variables保持。 我也无法以任何方式修改script2。