一、Shell脚本编程精讲01
例1 清除日志脚本
cd /var/log
cat /dev/null > messages
Centos linux 系统默认的shell是?
#答案: bash
[root@web02 ~]# echo $SHELL
/bin/bash
sh 和 bash的区别
sh为bash的软连接
shell脚本的执行
三种执行方式
① bash script_name 或 sh script_name
② path /script_name 或 ./script_name (当前路径下执行脚本)
③ source script_name 或 . script_name #注意 " . "点号
值得注意的是第③个方式
举例说明:
可参考nfs配置文件
当使用 source 或 . 号脚本的时候,这样下面的才能调用脚本文件里的变量,如果变成sh则无法调用。
二、精讲02
变量可分为两类:环境变量(也称全局变量)和局部变量。
环境变量可以在命令行中设置,但用户退出时这些变量值也会丢失,因此最好在用户家目录下的**.bash_profile文件中或全局配置/etc/profile**文件中定义。I将环境变量放入profile文件中,每次用户登录时这些变量值都将被初始化。
环境变量应用于用户进程前,必须用export命令导出。
三种设置环境变量的方法:
① export 变量名=value
② 变量名=value ; export 变量名
③ declare -x 变量名=value
export NAME=boy
declare -x NAME=boy
NAME=boy; export NAME
#vim家目录下的.bash_profile文件 和 全局配置/etc/profile定义
export OLDBOY='oldboy'
然后再外边 source /etc/profile 或 . /etc/profile使其生效
env | grep OLDBOY
比如:
显示环境变量的指令
env
#和 set显示所有本地变量
set
变量中单引号、双引号与不加引号的说明
这里也可参考骏马金龙的bash课程。但在awk中,上诉结论是相反的。
shell特殊变量
三、精讲03
bash内部变量
变量子串的操作
规律:
#从头开始, %从结尾开始。 可变相参考键盘数字的布局来记住这规律
也可参考Shell的Parameter Expansion
http://xstarcd.github.io/wiki/shell/ShellParameterExpansion.html
变量的数值计算
数值计算的常见命令:
(())
let
expr
bc
$[]
a=10
echo $((a++))
i=2
let i=i+3
#注意expr的运算符左右都有空格;使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解星号的含义
expr 3 + 2
expr 3 \* 2
expr $[2*3]
echo "scale=1;5.23 / 3.13"|bc
typeset -i A=1 B=3
A=A+B
echo $A
shell变量的输入
read命令从标准输入获得
四、精讲04
bash条件测试
#格式1和格式2是等价的
格式1: test<测试表达式>
格式2: [<测试表达式>]
格式3: [[<测试表达式>]]
文件测试操作符
字符串测试操作符
比较符
END 2021年1月31日00:01:25