获取.sh文件当前目录
//获取.sh文件当前目录
basepath=$(cddirname $0
; pwd)
//bash命令操作字符串
${string: start :length}
从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start}
从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length}
从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start}
从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars}
从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars}
从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%chars*}
从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%chars*}
从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符
输出值赋给变量
response_result=$(echo string)
grep命令查询文件、变量方法
//grep命令查询文件、变量方法
1.查询变量
//在response_result变量中查询包含字符串"ok"的语句
is_request_ok=$(echo $response_result | grep ok)
2.查询文件
//在456.sh文件中查询"speech"字符串
grep speech 456.sh
3.从输出中模糊过滤到符合正则的字符串
//从response_result_before变量中提取出符合正则的字符串
-Eo:只输出匹配到的字符串 没有这个命令会输出包含匹配字符串的一整行
is_match_before=$(echo $response_result_before | grep -Eo "${change_id}\-dev\+[0-9]{14}")
sed命令正则替换文件或变量中字符串
sed命令正则替换文件或变量中字符串
1.文件
如json文件
//mac中运行-i命令需要在后面加 “”
//下面命令由
sed -i "" "s/beforeString/afterString/" filename.json
演化而来
//解释:将文件 b i n s p e c j s o n f i l e 中 的 字 符 串 " v e r s i o n " : " 111111111 " , 中 的 111111111 替 换 为 变 量 {binspec_json_file}中的字符串 "version": "111111111", 中的111111111替换为变量 binspecjsonfile中的字符串"version":"111111111",中的111111111替换为变量{change_id}
sed -i "" "s/\"version\":.*$/\"version\": \"${change_id}\",/" ${binspec_json_file}
2.变量
//将
j
s
o
n
s
t
r
i
n
g
b
e
f
o
r
e
变
量
中
的
字
符
串
"
v
e
r
s
i
o
n
"
:
"
111111111
"
,
中
的
111111111
替
换
为
变
量
{json_string_before}变量中的字符串 "version": "111111111", 中的111111111替换为变量
jsonstringbefore变量中的字符串"version":"111111111",中的111111111替换为变量{change_id}
并赋值给新变量json_string_after
json_string_after=$(echo ${json_string_before} | sed -i "" "s/\"version\":.*$/\"version\": \"${change_id}\",/")
带颜色输出
#[\033[1;32mok\033[0m]为[ok]
#通过更改32m为其他来改变颜色,如
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
echo "[\033[1;32mok\033[0m]\033[1;34m当前目录是:/usr/loacl \033[0m"
输出