shell指令速查

基本语法

数组

1
2
3
4
5
6
7
8
1 数组取元素
${a[0]}
2 数组计数
${#a[@]}
3 数组初始化
a=("xxx" "xxx")
4 数组追加内容
a=($a[@] "xxx")

比较

1
2
3
if xxx; then
else
fi
1
2
3
4
5
6
7
数字之间
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
字符串之间把括号换成方括号[[]]即可
如果要比较多个条件,用&& ||即可,if ((xxx)) && ((yyy)) ;then xxx;fi

循环

1
2
for v in ${arr[@]}; do
done
1
2
for i in {1..10}; do
done
1
for line in `cat 文件名`; do echo $line; done

各种命令

find

返回值传给数组

1
arr=($(find ~ -name "vcpkg"))

指定最大深度

1
find ~ -name -maxdepth 5

sed

文本替换

1
2
3
sed -i “s/string_old/string_new/g” grep -rl string_old .
mac下
sed -i "" "s/string_old/string_new/g" grep -rl string_old .