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

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. Delphi RSA加解密【 (RSA公钥加密,私钥解密)、(RSA私钥加密,公钥解密)、MD5加密、SHA加密】

    作者QQ:(648437169) 点击下载➨delphi RSA加解密 [Delphi RSA加解密]支持 (RSA公钥加密,私钥解密).(RSA私钥加密,公钥解密).MD5加密.SHA1加密.SHA ...

  2. 不会前后端,用vps搭建个人博客(一)

    一.vps供应商选择 常见的国内有腾讯云(良心云).阿里云(套路云)等,国外有bandwagon和vultr,本人选的vultr山姆叔叔东部便宜小鸡.目前vlutr还有新用户注册后充值10刀送50刀的 ...

  3. Python有用的内置函数divmod,id,sorted,enumerate,input,oct,eval,exec,isinstance,ord,chr,filter,vars,zip

    divmod(a, b) 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b) id() 函数用于获取对象的内存地址. sorted(iterable, key ...

  4. springboot集成drools的方式一

    springboot集成drools的方式一(spring-drools.xml) 本文springboot采用1.5.1.RELEASE版本,drools采用的6.5.0.Final,一共会讲三种方 ...

  5. 2019 2345网址导航java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.2345网址导航等公司offer,岗位是Java后端开发,因为发展原因最终选择去了2345网址导航,入职一年时 ...

  6. Spring Security 解析(一) —— 授权过程

    Spring Security 解析(一) -- 授权过程   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...

  7. [LeetCode] 543. 二叉树的直径 ☆(递归、数最大深度)

    描述 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过根结点. 示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长 ...

  8. 爬虫入门urlib,urlib2的基本使用和进阶

    python2中的urlib和urlib2 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的 ...

  9. chattr和lsattr命令

    原文 在一个技术群上看到这么一个问题: 问题出现在服务器被黑后!特意出记录下问题的解决方法. 由于被黑了,所以我们的很多命令将会出现使用不正常等问题,而这些问题大多是给人家添加或删除了某些权限所致.比 ...

  10. Web渗透