Linux必须掌握的shell脚本基础有哪些
Linux必须掌握的shell脚本基础有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
shell 基本语法
shell:
shell 是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。什么是 shell 脚本:
把 Linux 命令或语句放在一个文件中,通过这个程序文件去执行,这个程序为 shell 脚本或 shell 程序;可以在脚本中输入系统的命令以及相关的语法语句组合,比如变量,流程控制语句等,把他们有机结合起来就形成了一个功能强大的 shell 脚本。创建 shell 程序的步骤:
(1)创建一个包含命令和控制结构的文件,vim first.sh(2)修改这个文件的权限使它可以执行,chmod +x first.sh(3)检测语法错误;
(4)执行脚本。执行 shell 脚本的方式:
(1)通过绝对路径执行,/root/first.sh(需要添加可执行权限x)(2)bash first.sh 或 sh first.sh(可以不添加可执行权限)(3)source first.sh(可以不添加可执行权限,在当前 shell 执行)(4)sh < cal.sh,cat cal.sh |sh,cat cal.sh |bash(可以不添加可执行权限)初识 shell 脚本:
#!/bin/bash
# it is a shell!
echo "hello world!"
# 第一行:命令解释器类型
# 第二行:注释信息
2. shell 变量及运用
变量设置规则:
(1)变量名称通常是大写字母,可以由数字、字母(大小写)和下划线组成。变量名区分大小写,不能以数字开头;(2)a=10,= 的作用是赋值,= 两边不能有空格;(3)变量存储的数据类型是整数型和字符串型;(4)字符串型建议加引号。如果字符串中有空格,要用单引号‘’或双引号“”包含起来;(5)变量调用时,在变量前加 $,$a;(6)如果需要增加变量的值,可以进行变量值的叠加。变量需要用双引号包含“$变量名”或用${变量名}包含。
变量的分类:
按照变量的作用划分:(1)用户自定义变量(字母或下划线开头,不能以数字开头)(2)环境变量:保存和系统操作环境相关的数据(3)位置参数变量:外汇跟单:www.gendan5.com向脚本中传递参数或数据的,变量名不能自定义,变量的作用是固定的(4)预定义变量:是 bash 中已经定义好的变量,变量名不能自定义,变量的作用是固定的按照变量的作用域划分:(1)全局变量:环境变量,值不随 shell 脚本的执行结束而消失,值传递给子 shell 而不传递给父 shell env 命令查看所有全局变量:
export 声明全局变量:
添加环境变量:
(2)局部变量:是 shell 程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括用户自定义变量、位置变量和预定义变量
命令的替换:
使用 $() 或反引号。echo $(pwd) 或 echo `pwd`命令的嵌套使用:
使用 $($())
单引号和双引号:
在单引号中,所有的字符(包括特殊字符)都将解释成字符本身成为普通字符;在双引号中,除了 $、'' 和 \ 以外所有的字符都解释成字符本身。删除变量:
unset 变量名:删除变量
定义变量的配置文件:
/etc/profile:系统全局环境和登陆系统的一些配置/etc/bashrc:shell 全局自定义配置文件,用于自定义 shell/root/.bashrc:用于自定义某个用户的bash/root/.bash_profile:用户单独自定义某个用户的系统环境插入永久变量:(1)vim /etc/profile;(2)在最后一行写入 export var8=100,保存并退出;(3)source /etc/profile位置变量:
特殊变量:
$*以一个单字符串显示所有向脚本传递的参数
$#传递到脚本的参数的个数
$$当前进程的进程号 PID
$?显示最后命令的退出状态;0表示没有错误,其他值都表示有错误
$!后台运行的最后一个进程的进程号 PID
3. 数学运算
expr 命令:
(1)对数字的基本计算;做比较时,输出结果为假时为0,1为真;特殊符号用转义符
(2)对字符串的处理
$(()):
运算符意义
++ --递增 递减
+ - !~正 负 逻辑与取反
+ - * / %加 减 乘 除 余数
< <= > >=比较大小
== !=相等 不相等
>> <<向左位移 向右位移
& ^ |按位的与 按位的异或 按位的或
&& ||逻辑与 逻辑或
?:条件判断
计算从1加到100的值:
看完上述内容,你们掌握Linux必须掌握的shell脚本基础有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341