bash (/bin/bash) 是目前大多数Linux版本采用的默认shell
基于GNU框架下发展出来shell
几种shell脚本的执行方式
chmod 777 ky27.sh 赋权执行 ./first.sh
source first.sh
sh first.sh
bash first.sh
从左到右依次给未知变量$1表示第一位
$0表示脚本命令身如 ./addnum.sh
shell 脚本的应用场景
重复性操作,交互性任务,批量事务处理,服务运行状态监控,定时任务执行
free -m 命令来进行内存运算
bash -n 脚本命令 检查语法错误
bash -x 检查逻辑错误
变量命名格式
1不适用linux 自带的命令作为变量
2不适用特殊字符(可以用下滑线)
3不用中文,以指定的英文名作为变量(区分大小写)
${a} 用于获取变量的值
“ ”允许通过$引用其他变量值(弱引用)
‘ ’强引用 直接转换变量为字符串
` `提取命令执行的结果
< 是从指定的文件读取数据(而不是从键盘输入)
-F:以:为分割符
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行后的输出结果,`…`和$(…)作用相同
环境变量由系统提前创建,用来设置用户的工作环境
env可以直接查看
PATH=“$PATH:/root”
"$*" 连接起来作为字符串(整体)无“ ”会一行一行的输出
“$@ ”一行一个输出
$# 输入参数的数量
$?前一条脚本或命令执行的返回值
echo -n 取消自动换行;
全局变量:启动脚本了.在各线程,以及主程序中.可以互相传递值.每次启动脚本,初始值都一样.
环境变量:启动脚本了.在各线程,以及主程序中.可以互相传递值.每次启动脚本,初始值是上次停止脚本时的值.
用户自定义的全局环境变量,一般都是在 /etc/profile.d/目录下新建一个.sh 脚本文件 ,在家目录下编辑.bash_profile 添加全局变量
修改环境变量后,切记 source 刷新一下,使其生效
最好在 vim ~/.bashrc 中最后一行添加一句 source /etc/profile
否则可能在你重启机器时,出现之前配置的环境变量又失效了的问题
全局变量位置:root家目录下ls -a
通过命令 cd ~ ,[[进入当前用户的家目录,在家目录下进行用户级全局变量的配置。此处配置用到 .bash_profile 和 .bashrc两个文件(注意:文件前面有个点)
进入家目录,通过 ls 命令,你发现并没有这两个文件,那是因为这两个文件是隐藏文件,你可以通过命令 ls -a 看到这两个文件。接下来介绍这两个文件。
~/.bash_profile:每个用户都可以使用该文件,来输入属于自己的shell信息。当用户登录时,该文件仅仅执行一次!!!默认情况下,他设置一些环境变量,执行用户的.bashrc 文件。
~/.bashrc:该文件包含专属于你自己的 bash shell 的 bash 信息。当用户登录以及每次打开新的shell时,该文件都会被读取。(不推荐将变量放置在这儿,因为每打开一个shell,这个文件就会被读取一次,效率肯定是有影响的)
read -p 用于提示用户
read -p "请输入一个变量:" a
read -a 数组的名称
echo “第一数组:${words[0]}”
shell排错技巧:b=0
b=[ `expr $a \< 10` -a `expr $a = 10 ` ] && [ `expr $a \> 0` ]
echo $b
来查看返回的值
然后注释掉上边
b=[ `expr $a \> 10 ` ]
echo $b
查看返回值
shell脚本不需要定义但要初始化