变量分为普通变量可只读变量

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脚本 基础应用的更多相关文章

  1. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  2. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  3. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  4. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  5. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  6. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

  7. shell脚本基础知识

    虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...

  8. 模块一:shell 脚本基础

    一.shell脚本介绍 (一)脚本案例及介绍: #!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if ["$UID -ne "$ROOT_UID&q ...

  9. shell脚本基础知识以及变量

    一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...

随机推荐

  1. swift版 二分查找 (折半查找)

    二分查找作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围之内,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找.废话少说,直接上代码,可复制粘贴直接出结果! import ...

  2. UOJ399 CTSC2018 假面 期望、DP

    传送门 \(Q \leq 200000 , C \leq 1000 , m_i \leq 100\)-- 先考虑如何维护最后一次操作时所有人的血量期望.不难发现我们需要的复杂度是\(O(Qm_i)\) ...

  3. sso cas 坑

    一个中文文档地址: http://www.cassso-china.cn/apereo_github_cas_5.2/apereo.github.io/cas/5.2.x/ ============= ...

  4. Java之数据类型讲解

    Java数据类型关系图 基本数据类型 从小到大的关系图: 图中从左向右的转换都是隐式转换,无需再代码中进行强制转换 : byte i = 12; System.out.println("by ...

  5. Chrome 谷歌开发者工具使用窍门

    我们这里介绍主要的几块:Console.Source.Network Console 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的, ...

  6. [golang]按图片中心旋转后的新图左顶点和原图左顶点的偏移量计算

    1 前言 略,作为记录使用 2 代码 /** * @Author: FB * @Description: * @File: RotateSample.go * @Version: 1.0.0 * @D ...

  7. igel udc2 config

    igel udc2 config 系统安装盘下载地址 http://www.myigel.biz/?forcedownload /config/bin/igelone_config #!/bin/sh ...

  8. vue中常见的指令

    1,差值表达式{{}} <p >{{ msg }}</p> 2.v-cloak解决差值表达式闪烁的问题 <p v-cloak>{{ msg }}</p> ...

  9. js 取得数组中的最大值和最小值(含多维数组)

    转自:http://www.dewen.org/q/433 方法一: var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math. ...

  10. day 21 作业

    定义MySQL类 对象有id.host.port三个属性 定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 提供两种实例化方式,方式一:用户传入host和port 方式二:从 ...