(一) echo 输出带颜色的文本
前景色,字体颜色: 使用 \e[1;31mString 表示字符串带指定颜色,以 \e[0m 结尾可以避免后续文字颜色。30m-37m表示不同颜色
背景色,背景颜色:使用 \e[1;41mString 表示背景颜色。以\e[0m 结尾。40m-47m 表示不同颜色。
(二) shell 变量
2-1) 变量赋值: 第一种显示定义 ip=www.baidu.com
第二种读入方式 read ip --从键盘读入 read -p “Please enter a ip: ” ip --加提示 read 后多个参数输入时以空格分割 分别赋值给参数。
第三种位置变量 $n 执行变量时传入
2-2) 变量类型
$*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n的形式输出所有参数。
当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “$2”…”$n”的形式输出所有参数。
$0 变量会获取脚本的执行全名称。需要结合 basename 和 dirname 两个命令分别获取脚本名和路径。
shell默认将变量都认为是字符串
双引号 "" 是弱引用
单引号 '' 是强引用 ,单引号当中没有特殊符号,是什么就是什么。
命令替换 : `` 和 $() 都是命令替换,他里面的命令要先之执行。
2-3) 变量运算
其中小数运算是把运算表达式交给bc来进行计算的。注意在bc中 次方计算是^ 符号,在shell中是**
2-4) 变量‘内容’的删除和替换
切片方式(按照索引来切):
内容的替换:
变量的替代(几种特殊字符,- :- + :+ = := :
2-5) i++ 和 ++i 的区别
对变量的影响看不出来,在使用表达式时才看的出来区别。
平时常用到的区别就是在数组下标中。比如 i=0 开始,有以下区别:
user[i++] 数组下标从0开始
user[++i] 数组下标从1开始
20200213