Shell Step by Step (2) —— Variable

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=${!$#} 将报错

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。