相关疑难解决方法(0)

仅当文件尚不存在时才在文件中附加一行

我需要在配置文件的末尾添加以下行:

include "/configs/projectname.conf"
Run Code Online (Sandbox Code Playgroud)

到一个名为的文件 lighttpd.conf

我正在考虑使用sed这个,但我无法弄清楚如何.

如果该行尚不存在,我将如何仅插入它?

linux terminal sed

135
推荐指数
7
解决办法
8万
查看次数

检查命令的输出是否包含shell脚本中的某个字符串

我正在编写一个shell脚本,我正在尝试检查命令的输出是否包含某个字符串.我想我可能不得不使用grep,但我不确定如何.有人知道吗?

bash shell grep

90
推荐指数
5
解决办法
12万
查看次数

如何在运行shell脚本时在Jenkins中标记构建不稳定

在我正在开发的项目中,我们使用shell脚本来执行不同的任务.有些脚本是运行Rsync的SH/Bash,有些是PHP脚本.其中一个PHP脚本正在运行一些集成测试,这些测试输出到JUnit XML,代码覆盖率报告等.

Jenkins能够将作业标记为基于退出状态的成功/失败.在PHP中,如果在运行期间检测到测试失败,则脚本将退出1.其他shell脚本运行命令并使用其中的退出代码将构建标记为失败.

// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);
Run Code Online (Sandbox Code Playgroud)

Jenkins术语中,不稳定的构建被定义为

如果构建成功并且一个或多个发布者报告它不稳定,则构建不稳定.例如,如果配置了JUnit发布者并且测试失败,则构建将标记为不稳定.

在运行shell脚本时,如何让Jenkins将构建标记为不稳定而不是仅成功/失败?

shell build status jenkins

79
推荐指数
6
解决办法
8万
查看次数

如何检查docker是否正在运行

我是码头工人的新手.我正在为docker编写一个简单的脚本.我需要检查docker是否正在运行.是否有命令检查容器名称

bash docker

60
推荐指数
14
解决办法
11万
查看次数

如何在bash中构建条件赋值?

我正在寻找一种在bash中构建条件赋值的方法:

在Java中它看起来像这样:

int variable= (condition) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

bash

53
推荐指数
8
解决办法
5万
查看次数

返回不匹配的sed代码

我正在sed用于在运行时更新我的​​json配置文件.有时,当模式在json文件中不匹配时,仍然sed以退货代码0退出.

返回0表示成功完成,但sed如果找不到正确的模式并更新文件,为什么返回0?有解决方法吗?

谢谢!

linux json sed

51
推荐指数
4
解决办法
5万
查看次数

如何获取GNU Makefile中使用的shell命令的退出状态?

我在执行linux工具时有一个makefile规则.我需要检查工具命令的退出状态,如果该命令失败,则必须中止make.

我试过用$ ?, $$来检查?\ $?makefile中的etc等.但是当makefile运行时,它们会给我语法错误.

这样做的正确方法是什么?

这是Makefile中的相关规则

    mycommand \
    if [ $$? -ne 0 ]; \
    then \
        echo "mycommand failed"; \
        false; \
    fi
Run Code Online (Sandbox Code Playgroud)

linux shell makefile gnu-make

27
推荐指数
2
解决办法
3万
查看次数

如果grep找到了它正在寻找的东西,那就做X else Y.

在这个语句中我试图匹配路径/ app/$ var1(应用程序名称)中是否存在版本($ var2)

if 
find /app/$var1 -maxdepth 1 -type l -o -type d | grep $var2 #results in a nice list where i can manually get a true match.
# if match is found then execute command.
$realcmd "$@"
    rc=$?
    exit $rc
else
echo "no match, the version you are looking for does not exist"
fi
Run Code Online (Sandbox Code Playgroud)

当前代码:这包括我的所有代码(未清除).命令我运行:"./ xmodule load firefox/3.6.12"此版本确实退出

#!/bin/bash
# hook for some commands

#echo $@  #value of sting that is entered after "xmodule"

cmd=$(basename "$0")
#echo …
Run Code Online (Sandbox Code Playgroud)

bash grep

20
推荐指数
2
解决办法
5万
查看次数

将 bash 中的比较输出打印为布尔值

我有个问题

a=1
b=2
Run Code Online (Sandbox Code Playgroud)

我想要将比较输出到变量。即在 Windows 语言中你可以写这样的东西。它应该打印false

print ($a == $b)
Run Code Online (Sandbox Code Playgroud)

在控制台中尝试以下这些。

echo $a -eq $b
echo (( $a -eq $b ))
echo "$a" -eq "$b"
c= $(expr  "$a" -eq "$b"  )
echo $c
Run Code Online (Sandbox Code Playgroud)

bash shell

7
推荐指数
1
解决办法
6757
查看次数

我如何以编程方式(在shell脚本中)确定是否有更改?

我正在尝试创建一个Bash脚本,该脚本知道当前工作目录是否有更改.我知道

$ git status
Run Code Online (Sandbox Code Playgroud)

返回"无提交"之类的消息.我想要的是将变量定义为true或false.这个布尔值将告诉我是否有变化.

显然我不是bash脚本的专家.我试过这样的事,

there_are_changes=$(git status | grep nothin)
echo $there_are_changes
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.我该怎么办?

git bash

6
推荐指数
2
解决办法
1544
查看次数

标签 统计

bash ×6

shell ×4

linux ×3

grep ×2

sed ×2

build ×1

docker ×1

git ×1

gnu-make ×1

jenkins ×1

json ×1

makefile ×1

status ×1

terminal ×1