相关疑难解决方法(0)

当输入不匹配时,防止grep返回错误

我想在bash脚本中编写一段代码,用于检查程序是否已在运行.我有以下内容,以搜索栏是否正在运行

 foo=`ps -ef | grep bar | grep -v grep`
Run Code Online (Sandbox Code Playgroud)

 grep -v grep
Run Code Online (Sandbox Code Playgroud)

部分是为了确保在ps结果中不考虑"grep bar"

当bar未运行时,foo正确为空.但我的问题在于剧本的事实

 set -e
Run Code Online (Sandbox Code Playgroud)

如果某个命令返回错误,则为终止脚本的标志.事实证明,当bar未运行时,"grep -v grep"与任何内容都不匹配,grep会返回错误.我尝试使用-q或-s但无济于事.

那有什么解决方案吗?谢谢

bash grep

64
推荐指数
4
解决办法
3万
查看次数

使用正则表达式过滤diff

似乎能够过滤差异非常方便,因此不会显示琐碎的变化.我想写一个正则表达式,它将在该行上运行,然后传递另一个字符串,使用捕获的参数生成规范形式.如果之前和之后的行产生相同的输出,那么它们将从diff中移除.

例如,我的工作在哪里数组访问的显著数写成一个PHP代码库my_array[my_key]时,他们应该是my_array["my_key"]防止如果问题my_key不断被定义.生成差异是有用的,其中线上的唯一变化是不添加一些引号.

我无法一次性更改它们,因为我们没有足够的资源来测试整个代码库,所以每当我对函数进行更改时都会修复它.我怎样才能做到这一点?还有其他类似的东西,我可以用来实现类似的结果.例如,一个更简单的方法可能是跳过规范形式,只看输入是否转换为输出.顺便说一句,我正在使用Git

regex git diff

10
推荐指数
4
解决办法
1万
查看次数

标签 统计

bash ×1

diff ×1

git ×1

grep ×1

regex ×1