echo输出彩色字体
实现该功能需要使用echo
的-e
选项
eg:
echo -e "\033[31manything you want to display.\033[0m"
\033[31m
为ANSI
控制码,表示要开始输出有颜色的字符了,另一种写法是:
echo -e "\e[31m\e[00m"
使用\e
代替\033
前景由31
决定,该位置可以替换成其他值,列表如下:
-
30
表示黑色 -
31
表示红色 -
32
表示绿色 -
33
表示黄色 -
34
表示蓝色 -
35
表示紫色 -
36
表示浅蓝色 -
37
表示灰色
背景由41
决定,该位置可以被替换成其他值,列表如下:
-
40
表示背景为黑色 -
41
表示背景为红色 -
42
表示背景为绿色 -
43
表示背景为黄色 -
44
表示背景为蓝色 -
45
表示背景为紫色 -
46
表示背景为浅蓝色 -
47
表示背景为灰白色
我们可以使用;
来同时设置输出的前景色和背景色
eg:灰白色背景、红色前景
echo -e "\033[47;31manything you want to display.\033[0m"
后面的\033[0m
也是ANSI
控制码,表示输出结束
其他的ANSI
控制码:
-
\033[1m
让输出的字符高亮显式 -
\033[3m
输出斜体字 -
\033[4m
给输出的字符加上下划线 -
\033[5m
让输出的字符闪烁显式 -
\033[7m
设置反显效果,即把背景色和字体颜色反过来显示
eg:
使用`;`结合反显控制码的效果
位置参数变量
$n $* $@ $#
以上四个位置参数变量分别代表,传入的第n个参数参数,传入的所有参数,传入的每一个参数,传入的参数的个数
#!/bin/bash
for i in "$*"
do
echo "The parameter is: $i"
done
x=1
for y in $@
do
echo "The parameter$x is: $y"
x=$(($x+1))
done
由上面的脚本我们可以看出来$* 和 $@
是有区别的,$*
将所有参数当成了一个整体,因此循环只执行了一次
预定义变量
$? $$ $!
上面三个预定义变量分别表示上一条命令的执行结果(0代表正确执行,非0代表错误执行,具体是哪一个非0数由命令自己决定),当前进程的PID,后台执行的最后一个进程的PID
read接受脚本参数输入
#!/bin/bash
read -t 6 -p "Please input your name:" name
echo $name
echo -e "\n"
read -s -t 6 -p "Please enter your age:" age
echo "Age is $age"
echo -e "\n"
read -n 1 -t 6 -p "Please select your gender[M/F]:" gender
echo "Sex is $gender"
-n -t -p
以上三个选项分别代表要读入的参数个数,等待输入的时间长度,是否为机密输入(在输入的时候不回显字符)
declare
用法declare [+/-][选项]
- 给变量设定类型
+ 取消变量类型
-i 将变量声明为整型INTEGER
-x 将变量声明为环境变量
-p 查看变量的值
我们最常用的数值运算方式是这样的:
aa=11
bb=22
cc=$(($aa + $bb))
注意:
a
a
和
aa和
aa和bb之间的空格是不可省略的
还有一种写法,是使用expr:
cc=$(expr $aa + $bb)
空格不可省略
source命令
一帮情况下,更改完配置文件之后,要注销重新登录才会生效,不过我们可以直接使用source命令,使配置文件直接生效
source conf_File