shell脚本语言使用详细教程
1、shell的概述
shell 是一种脚本语言
脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)
shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)
shell命令解析器:
系统提供 shell命令解析器: sh ash bash
查看自己linux系统的默认解析:echo $SHELL
shell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行
2、脚本的调用形式
打开终端时系统自动调用:/etc/profile 或 ~/.bashrc
/etc/profile
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,系统的公共环境变量在这里设置
开始自启动的程序,一般也在这里设置
~/.bashrc
用户自己的家目录中的.bashrc
登录时会自动调用,打开任意终端时也会自动调用
这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等
用户手动调用:用户实现的脚本
3、shell语法初识
3.1、定义以开头:#!/bin/bash
#!用来声明脚本由什么shell解释,否则使用默认shell
3.2、单个"#"号代表注释当前行第一步:编写脚本文件
第二步:加上可执行权限
1 | chmod +x xxxx.sh |
第三步:运行
三种执行方式 (./xxx.sh bash xxx.sh . xxx.sh)
三种执行方式的不同点(./xxx.sh bash xxx.sh . xxx.sh)
./xxx.sh :先按照 文件中#!指定的解析器解析
如果#!指定指定的解析器不存在 才会使用系统默认的解析器
bash xxx.sh:指明先用bash解析器解析
如果bash不存在 才会使用默认解析器
. xxx.sh 直接使用默认解析器解析
三种执行情况:(重要)
注意:windows下 写脚本 在linux下执行 注意
执行结果:
将windows文件 转换成 unix文件
方法一:dos2unix 如果没有该插件 需要安装
sudo apt-get install dos2unix
dos2unix shell脚本
转换成功就可以执行运行
方法二:
需要用vi打开脚本,在最后一行模式下执行
:set ff=unix
4、变量
定义变量
变量名=变量值
如:num=10
引用变量
$变量名
unset :清除变量值
运行结果:
从键盘获取值read
运行结果:
案例:
在一行上显示和添加提示 需要加上-p
运行结果:
案例:读取多个值
运行结果:
案例只读变量:
运行结果:
查看环境变量:env
导出环境变量(其他shell识别该变量)
source 脚本文件
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
注意:source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。
可以在终端中读取:
在其他sh脚本读取:
运行结果:
注意事项:
1、变量名只能包含英文字母下划线,不能以数字开头
1_num=10 错误
num_1=20 正确
2、等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来
3、双引号 单引号的区别
双引号:可以解析变量的值
单引号:不能解析变量的值
运行结果:
如果想在PATH变量中 追加一个路径写法如下:(重要!!!!)
1 | export PATH=$PATH:/需要添加的路径 |
5、预设变量
shell直接提供无需定义的变量
案例:
运行结果:
脚本标量的特殊用法
加-e转义 才起换行作用
()由子shell 完成
{}由当前的shell执行
6、变量的扩展
6.1、判断变量是否存在
6.2、字符串的操作
7、条件测试
test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ]
使用方括号时,要注意在条件两边加上空格。
7.1、文件测试
7.2、字符串测试
7.3、数值测试
7.4、符合语句测试
8、控制语句
8.1、if控制语句
1234567891011121314 | 格式一:if [条件1]; then 执行第一段程序else 执行第二段程序fi格式二:if [条件1]; then 执行第一段程序elif [条件2];then执行第二段程序else 执行第三段程序fi |
案例:
案例:判断当前路径下有没有文件夹 有就进入创建文件 没有 就创建文件夹 再进入创建文件
运行结果:
案例:
运行结果:
8.2、case
8.3、for循环语句
案例:
案例:扫描当前文件
8.4、while
8.5、until
8.6、break continue
9、函数
所有函数在使用前必须定义,必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用
案例:求最值
案例:函数分文件
fun.sh
24_sh.sh
到此这篇关于shell脚本语言的使用(超全超详细)的文章就介绍到这了!
您可能感兴趣的文章:
- Linux Shell脚本系列教程(二):终端打印命令详解
- Linux shell传递参数实现原理及代码实例
- shell脚本4种执行方式
- linux反弹shell的原理详解
- 自己常用的一些shell脚本分享
- 入门shell脚本基础及原理
栏 目:软件教程
下一篇:solidworks2016安装教程及破解方法 sw2016安装详细教程
本文标题:shell脚本语言使用详细教程
本文地址:https://idc91.com/ruanjianjiaocheng/4676.html
您可能感兴趣的文章
- 07-20solidworks2016安装教程及破解方法 sw2016安装详细教程
- 06-16shell脚本语言使用详细教程
- 11-22Dreamweaver CS3中的CSS布局规则
- 11-22Dreamweaver定义模板批量制作网页
- 11-22Dreamweaver查找替换方法 正则表达式
- 11-22DW的源代码视图按空格代码提示功能消失
- 11-22Dreamweaver生成新页面css的类失效
- 11-22写给喜欢用DW编写CSS人的一些建议
- 11-22Dreamweaver cs6设置代码字体大小的方法
- 11-22Notepad++远程连接Linux系统的方法
阅读排行
推荐教程
- 07-20solidworks2016安装教程及破解方法 sw2016安装详细教程
- 06-16shell脚本语言使用详细教程
- 11-22Notepad++如何关闭最近打开的文件的历史记录功能
- 11-22DW的源代码视图按空格代码提示功能消失
- 11-22Dreamweaver查找替换方法 正则表达式
- 11-22Notepad++插件JSTool:JS代码格式化工具
- 11-22Sublime text 3如何一键隐藏代码块
- 11-22写给喜欢用DW编写CSS人的一些建议
- 11-22Dreamweaver cs6设置代码字体大小的方法
- 11-22notepad++中快速插入当前时间的方法