shell学习
set -e #遇到错误不继续执行, 默认是set +e,遇到错误继续执行
echo用法
是否使用双引号区别:使用双引号原样输出,不使用双引号会去除多余空格
1 | echo hello world 你好 outout:hello world 你好 |
对于变量同样有用
-n: 不换行, echo默认有换行
-e:能执行转义字符
输出带颜色的字符
declare用法,同义词 set, 相反 unset
-i 整形 -r只读-a数组 -f指定函数名
``反引号和$()
1 | local_ip=`cat /etc/hosts | grep \`hostname\` | awk '{print $1}'` |
数组
定义 arr=(1 2 abc “hello world”)
使用*或@代表整个数组, #代表数组的长度, 不写是第一个元素
1 | echo "${#arr[@]}" |
# 数组的遍历
# 方式一
1 | index=1 |
echo “方式二—————“
1 | for i in `seq 0 ${last_index}` |
函数
定义:
func1(){}
长度: $#
返回值:$?
1 | func_with_params() { |
计算 expr let (())
@ 和*的区别
arr=(1 2 3)
for ele in “${arr[@]}” // 正常输出
for ele in “${arr[*]}” // 数组是一个整体 1
文件描述符
0 标准输入
1 标准输出
2 标准错误输出