http://www.cnblogs.com/ginsonwang/p/5525340.html
下面是直接copy的内容: (本来是不打算copy的,但是每次用到或看的时候都要跳转,感觉挺麻烦的。就直接copy了。)
方法一:利用grep查找
1 strA="long string"
2 strB="string"
3 result=$(echo $strA | grep "...
多数情况下[ ]和[[]]是可以通用的,单中括号 [ ],bash 的内部命令,[和test是等同的。双中括号[[ ]],[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。
[ ] 和 [[]]区别
[ ]中可用的比较运算符只有==和!=,可用于
字符串
比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。
[[ ]] 支持
字符串
的模式匹配,使用=~操作符时甚至支持
shell
的正则表达式。
字符串
比较时可以把右边的作为一个模式,而不仅仅是一个
字符串
,比如[[
grep -q "Hello World" test && echo "exist" || echo "not exist"
如果test文件中存在"Hello World",则执行echo “exist”
否则执行echo "not exist"
先打印长
字符串
,然后在长
字符串
中 grep 查找要搜索的
字符串
,用变量result记录结果
如果结果不为空,说明strA
包含
strB。如果结果为空,说明不
包含
。
这个方法充分利用了grep 的特性,最为简洁。
使用nvidia-smi命令,显卡驱动报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver的解决办法.
1、 查看显卡驱动的版本号
ll /usr/src/
2、执行命令
sudo apt-get install dkms
sudo dkms install -m nvidia -v 470.63.01 (470.63.01是显卡驱动版本号)
done在运行时出现了 [: =: unary operator expected的错误,尝试了删除等号两侧的空格和括号里的空格都不管用,把语句改成这样就不会出错了:while [ "$cursor"x != "null"x ]
done究其原因,是因为:如
计划使用fabric 2.x 的externalBuilds 构建外部的链码服务,在这个过程中发现了,无法使用对应的二进制包,会出现/bin/sh: ./build: not found 错误,解决办法将build 文件开头的
#!/bin/bash 修改为#!/bin/sh