shell脚本 基础应用
变量分为普通变量可只读变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#普通变量 #!/bin/bash name= "chen" echo "${name}" 下面是执行结果 --------------------------- [root@localhost ~] # sh t1.sh chen #只读变量 只读变量就是只可以阅读,不可以进行二次修改 #!/bin/bash name= "chen" readonly name name= "chenyiyuan" 下面是执行结果 ------------------------------ [root@localhost ~] # sh t1.sh t1.sh:行4: name: 只读变量 #删除变量 #!/bin/bash name= "chen" unset name echo "${name}" 下面是执行效果 执行效果为空 ------------------------------- [root@localhost ~] # sh t1.sh :<<EOF 给变量命名的注意事项: 1.命名只能使用英文字母,数字和下划线,首个字符不能以数字开头 2.中间不能有空格 不可以使用下划线 3.不能使用标点符号 4.不可以使用 bash 中的关键字 EOF :<<EOF 变量的类型 1.局部变量 2.环境变量: 可以自己定义环境变量 [root@localhost ~] # vim /etc/profile ----------------------- export NAME= "chen" ----------------------- [root@localhost ~] # source /etc/profile //执行这条命令之后才可以是环境变量生效,在任何的shell脚本中都可以使用 EOF |
特殊变量
特殊变量 | 含义 |
$$ | Shell本身的PID(ProcessID) |
$! | Shell最后运行的后台Process的PID |
$? | 最后运行的命令的结束代码(返回值) |
$- | 使用Set命令设定的Flag一览 |
$* | 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$@ | 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$# | 添加到Shell的参数个数 |
$0 | Shell本身的文件名 |
$1~$n | 添加到Shell的各参数值。$1是第1参数、$2是第2参数… |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/bin/bash echo "shell的本身ID为: $$" echo "执行的文件名为: $0" echo "第一个参数为: $1" echo "第二个参数为: $2" echo "第三个参数为: $3" echo "所有传递的参数个数为: $#" echo "所有传递的参数: $* $@" 执行结果 ----------------------------------------- [root@localhost ~] # sh t1.sh 1 2 3 shell的本身ID为: 26861 执行的文件名为: t1.sh 第一个参数为: 1 第二个参数为: 2 第三个参数为: 3 所有传递的参数个数为: 3 所有传递的参数: 1 2 3 1 2 3 ————————————————————————————————————————— |
shell字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
:<<EOF 单引号和双引号的区别: 1.单引号中的任何字符都会以字符串的形式输出,所以如果变量是用单引号引起来的就是无效的变量 #!/bin/bash name= "chen" echo '${name}' 执行效果如下 ------------------------------- [root@localhost ~] # sh t1.sh ${name} ------------------------------- 2.双引号中可以有变量,而且可以有转义字的出现 ---------------------------------- #!/bin/bash name= "chen" str= "hello,my name is \"$name\" \n" echo -e ${str} //-e 可以识别转义字符 ----------------------------------- 执行效果如下 可以看出换了一行 ------------------------- [root@localhost ~] # sh t1.sh hello,my name is "chen" EOF 获取字符串的长度 #!/bin/bash name= "chen" echo ${ #name} 执行结果 ------------------------------ [root@localhost ~] # sh t1.sh 4 ------------------------------ 提取字符串中的子字符串 #!/bin/bash name= "chen19990920" echo ${name:4:5} // 冒号后面的第一个数字是字符串的下标,就是从哪里开始提取,后面的一个数字是要提取多少个字符 执行结果 --------------------------- [root@localhost ~] # sh t1.sh 19990 --------------------------- 查找一个字符串中某个字符的个数 #!/bin/bash name= "chen19990920" echo ` expr index "${name}" 9` 执行结果 ------------------------------- [root@localhost ~] # sh t1.sh 6 ------------------------------- |
shell算数运算符
1
|
:<<EOF |
+:对两个变量做加法。
-:对两个变量做减法。
*:对两个变量做乘法。 //需要加转义字符
/:对两个变量做除法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
EOF<br><br> #!/bin/bash a=10 b=2 echo ` expr $a + $b` echo ` expr $a - $b` echo ` expr $a \* $b` echo ` expr $a / $b 执行结果 ------------------------------ [root@localhost ~] # sh t1.sh 12 8 20 5 -----------------------------<br>:<<EOF |
**:对两个变量做幂运算。
%:取模运算,第一个变量除以第二个变量求余数。
+=:加等于,在自身基础上加第二个变量。
-=:减等于,在第一个变量的基础上减去第二个变量。
*=:乘等于,在第一个变量的基础上乘以第二个变量。
/=:除等于,在第一个变量的基础上除以第二个变量。
%=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。
1
|
EOF |
shell循环
for循环
while循环
shell脚本 基础应用的更多相关文章
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- shell脚本-基础
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
- shell脚本基础知识
虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...
- 模块一:shell 脚本基础
一.shell脚本介绍 (一)脚本案例及介绍: #!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if ["$UID -ne "$ROOT_UID&q ...
- shell脚本基础知识以及变量
一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...
随机推荐
- python ---socket初识
python网络编程(初识) 一些概念 套接字: 套接字(socket)也叫通信端点,最初用于计算机内部进程之间的通信,而随着网络的发展,套接字被用于计算机之间的通信.举个例子,你(是一台计算机)要打 ...
- flask源码系列
更新中 HTML文档中元素存在,但是在浏览器中不显示.一般用于配合JavaScript代码使用. 04 LocalStack和Local对象实现栈的管理 05 Flask源码之:配置加载 06 Fla ...
- SQL Server日志处理及安全访问
1.点SQL SERVER错误日志,右键,配置,限定错误日志的数目,比如6个 限制日志增长数量 2.然后运行命令: EXEC sp_cycle_errorlog ; 这个命令的作用是将当前日志归档,然 ...
- vuex的Store简单使用过程
介绍 Store的代码结构一般由State.Getters.Mutation.Actions这四种组成,也可以理解Store是一个容器,Store里面的状态与单纯的全局变量是不一样的,无法直接改变st ...
- 向Spring 容器中注入对象的几种方法
1.使用@Bean 注解,用于注入第三方 jar 包到SpringIOC容器中. 2.使用 @Import({Order.class, Member.class, MyImportBeanDefini ...
- WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口
原文:WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 当我们对 Window 类型写一个附加属性的时候,在属性变更通知中我们需要判断依赖对象是否是一个窗口.但是,如果直接判断是否是 W ...
- hibernate左连接查询时在easyUI的dataGrid中有些行取值为空的解决办法
1 当使用left join左连连接,sql语句为 select t from SecondPage t left join t.rightNavbar n where 1=1 页面中出现了部分空行的 ...
- Parameter 0 of method sqlSessionTemplate in org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration required a single bean, but 2 were found:
Parameter 0 of method orderSqlSessionFactory in com.config.MultipleDBConfig required a single bean, ...
- Python进阶(十五)----面向对象之~继承(单继承,多继承MRO算法)
Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # ...
- Flask--静态资源
静态资源 from flask import Flask, render_template app = Flask(__name__, template_folder="templates& ...