一、Shell脚本编程基础

1、简单地理解是脚本就是一堆的Linux命令或其他命令,把他们写到一起,打包成一个文件就是脚本,Shell脚本一般以.sh后缀结尾

2、sh text.sh:运行text.sh脚本

3、Linux支持变量,和c语言一样(但似乎不用声明类型),比如在脚本里写a = 10(这里为了看起来清除一点=两边加了空格,但实际上在shell脚本语言中这是错误的哦)。

4、echo:输出语句

echo $a:输出变量a(赋值一个变量时不需要写$,使用或读取一个变量需要写)

echo "Hello World":输出字符串(可以和上面的拼接在一起哦echo "Hello World" $a,并且在Linux里对于一个字符串拉说写不写双引号问题不大,echo Hello World这样也可以得到正常的输出)

5、expr:用来计算一个式子(+   -  \*   /  )赋值的地方不能写空格,运算符两边必须写空格。

c=`expr $a + $b`:计算a+b(记得要把这个式子括起来哦,如果+两边没有空格的话会显示a+b而不是他们的和)

c=`expr $a \* $b`:计算a*b(因为在正则表达式中“*”被认为可以重复很多次,所以在Shell里面也会这么认为,所以前面要加转义符号“\”才能得到表示乘)

Linux脚本语言里括号也是要写转义符的\(  \)。

6、if:条件判断语句

1 if[...]
2 then
3 ...
4 else
5 ...
6 fi

输出a和b的较大者

1 if [ $a -gt $b ]
2 then
3 echo $a
4 else
5 echo $b
6 fi

>:-gt(greater than)

<:-lt(less than)

>=:-ge(greater equal)

<=:-le(less equal)

==:-eq(equal)

!=:-ne(not equal)

7、for:循环语句

1 for x in ....
2 do
3 ...
4 done

注释用#

输出1-10(早期)

1 for x in 1 2 3 4 5 6 7 8  10  #赋值不用$哦
2 do
3 echo $x
4 done

输出1-10

1 for x in {1 .. 10}  #可能会不支持
2 do
3 echo $x
4 done

8、while:循环语句

1 while [ .. ]
2 do
3 ...
4 done

输出1-10

1 x=1
2 while [ $x -lt 10 ]
3 do
4 echo $x
5 x=`expr $x + 1`
6 done

二、字符串

1、定义:a=“hello”

1 #输出hello world
2 a=hello
3 b=world
4 echo $a $b

2、read a:输入a

3、比较两个字符串:通过一个"="比较是否相等,“!=”比较是否不等(和C一样)

 1 password="123"
2
3 echo "Please enter a password:"
4 read userPassword
5
6 if [ userPassword = password]
7 then
8 echo "密码正确!"
9 else
10 echo “密码错误!”
11 fi

4、拼接字符串:str3="$s1 $s2"(中间不加空格的话两个字符串就拼在一起了)

5、判断是否是空字符串:if[ -z $s1](-z表示zero,即长度是否为0,-n表示非0)

三、数组(记得用bash运行)

1、定义:arr=(7 8 9 10)

2、输出8:${arr[1]}({}表示数组)

3、输出整个数组

1 arr=(7 8 9 10)
2
3 for i in ${arr[@]}
4 do
5 echo $i
6 done

最新文章

  1. Redis执行Lua脚本的情况
  2. Vue入门笔记#过渡
  3. 使用ar命令删除iOS静态库重复编译的.o文件
  4. 求助:IIS中部署WCF,生成的WSDL中怎么把“计算机名”改成IP==找到一个解决办法
  5. Eclipse3.7中搭建Android开发环境文档教程和视频教程
  6. Centos 6.5 RedHat 6 安装mysql
  7. hdu 5432 Pyramid Split(二分搜索)
  8. js对象详解(JavaScript对象深度剖析,深度理解js对象)
  9. 阿里云免费购买SSL证书,nginx无缝升级https
  10. jquery.string.js
  11. Git如何克隆远程仓库
  12. SNF快速开发平台项目实践介绍
  13. 将string转为同名类名,方法名。(c#反射)
  14. PSP个人软件开发系统面向对象需求分析与设计文档
  15. 06-python opencv 使用摄像头捕获视频并显示
  16. 对象关系映射(ORM)
  17. Python 面试题学习
  18. GitHub和SVN的区别
  19. Django的restful api自动生成工具django-rest-swagger介绍
  20. 【BZOJ1050】[HAOI2006]旅行comf 并查集

热门文章

  1. proto3 协议指引
  2. when I was installing github for windows ,some errors occurred !
  3. 字节跳动-前端面试题 Multi Promise Order
  4. React Native &amp; Security
  5. 视屏剪辑软件 &amp; free video editor
  6. Azure 计费 &amp; 成本管理 &amp; 取消 Azure 订阅
  7. robots.txt
  8. ts 在Function上创建静态属性和方法
  9. 「NGK每日快讯」2021.2.3日NGK公链第92期官方快讯!
  10. Power Query 导入多源数据