3.变量声明
readonly 只读
export 修改或打印环境变量
export -p 显示当前环境
【注】强烈注意,在赋值的前后一定不要有空格.
# echo 控制字符颜色
root@kallen:/home/kallen/TEST/Shell# echo -e ‘\e[1;31mHello,World\e[0m‘
Hello,World
背景色: 0
透明(使用终端颜色), 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿,47白(灰)
前景色
: 30 黑 31 红, 32绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)
高亮度: 高亮是1,不高亮是0。注意m后面紧跟字符串。
-e
用来开启echo中的转义
\e
或 \033 来输出Esc符号
设置颜色的格式: \e[背景色;前景色;高亮m
恢复默认为
\e[0m
高亮是1,不高亮是0
注意m后面紧跟字符串
【注意】 以"-"开头的文件名在使用"-"作为重定向操作符的时候,可能会产生问题.
应该写一个脚本来检查这个问题,并给这个文件加上合适的前缀.如:
./-FILENAME, $PWD/-FILENAME,或$PATHNAME/-FILENAME.
如果变量的值以"-"开头,可能也会引起问题.
1 var="-n"
2 echo $var
3 #具有"echo -n"的效果了,这样什么都不会输出的.
~+ 当前工作目录,相当于$PWD 变量.
~- 之前的工作目录,相当于$OLDPWD 内部变量.
=~ 用于正则表达式,这个操作将在正则表达式匹配部分讲解,只有version3 才支持.
^ 行首,正则表达式中表示行首. "^"定位到行首.
变量赋值方式——
(1) 直接赋值:=
(2) Let赋值: let a=16+5
Bash
并不对变量区分"类型".本质上,Bash 变量都是字符串. 但是依赖于上下文,Bash 也允许比较操作和算术操作.
决定这些的关键因素就是,变量中的值是否只有数字.
a.位置参数
{}标记法是一种很好的使用位置参数的方法.这也需要间接引用
1 args=$# # 位置参数的个数
2 lastarg=${!args}
3 # 或: lastarg=${!#}
4 # 注意 lastarg=${!$#} 将报错