bash - Bash 将命令输出与字符串进行比较
问题描述
输出是一样的,而且总是回显need to pull
。$text
如果我在条件下删除引号,if
则会引发too many arguments
错误。
var="$(git status -uno)" &&
text="On branch master Your branch is up-to-date with 'origin/master'. nothing to commit (use -u to show untracked files)";
echo $var;
echo $text;
if [ "$var" = "$text" ]; then
echo "Up-to-date"
else
echo "need to pull"
fi
解决方案
=~
对于bash 正则表达式,最好这样做:
#!/bin/bash
var="$(git status -uno)"
if [[ $var =~ "nothing to commit" ]]; then
echo "Up-to-date"
else
echo "need to pull"
fi
或者
#!/bin/bash
var="$(git status -uno)"
if [[ $var == *nothing\ to\ commit* ]]; then
echo "Up-to-date"
else
echo "need to pull"
fi
推荐阅读
- yii2 - 为什么 mdmsoft/yii2-admin 中的路由为空?
- python - 在 Python 中将参数添加到给定的 URL
- typescript - Babel 不编译打字稿,看起来它忽略了 babel.config.js
- angular - 从 IdentityServer Angular oidc-client 获取客户端配置
- javascript - 使用 lodash 展平对象
- reactjs - 显示变量名称的模板文字 - React.js
- python - click() 在 selenium 无头 python 中不起作用(但也不会抛出任何错误)
- php - 在 000webhost 中生成的 csv 文件没有下载,而是在网页中打印结果。任何解决方案?
- javascript - 如何检查某人是否喜欢过一个帖子,所以他们不能多次喜欢它?
- artifactory - Artifactory - 文件版本的概念