Shell快速学习

文章整体内容

在这里插入图片描述
本篇文章只是快速学习了一些语法,如果更深入推荐2个比较权威的书籍
《Linux命令行与shell脚本大全》
《Linux shell脚本攻略》

百度网盘
链接:https://pan.baidu.com/s/1SzXqhWRceC9aSyRMy1soOA
提取码:d23w

Hello World

新建一个demo.sh

vim demo.sh

输入
在这里插入图片描述
并且加入权限

chmod 777 demo.sh 

运行

./demo.sh

会打印出结果
在这里插入图片描述
其中我们需要注意:

  • shell脚本通常sharp-bang起始:
#!/bin/bash
  • bash将以#符号开头的行视为注释。

  • echo 为输出语法 后面加入要输出的内容。不使用双引号也可以得到同样的输出结果。双引号允许shell解释字符串中出现的特殊字符。单引号不会对其做任何解释。

  • 运行 Shell 脚本有两种方法:

    • 作为可执行程序,上面的方法。
    • 作为解释器参数
/bin/bash demo.sh

声明变量

局部变量

在这里插入图片描述

打印结果
在这里插入图片描述
注意:

  • 变量赋值不能有空格

系统环境变量

输入

echo $PWD

则会显示当前系统的路径
在这里插入图片描述
注意:

  • 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。PWD需要大写

删除变量

使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用;unset 命令不能删除只读变量。

输入参数

输入
在这里插入图片描述
打印时输入

./demo.sh hello1 hello2

在这里插入图片描述
注:

  • 输入了hello1 hello2. 所以在控制台中就打印了hello1,hello2.
  • 更多的实用命令如下表格
形式 输入参数
$0 当前程序的名称
$n 程序的输入参数 n= 1第一个参数 n2 第二个参数
$* 所有的输入的参数
$# 输入参数的个数
$? 命令行的状态 一般返回0 代表成功

循环语句for

for 变量 in 字符串
do
		语句1
done

示例打印数字

系统环境变量打印1到15
seq 1 15

在这里插入图片描述

shell脚本打印

在这里插入图片描述

打印
在这里插入图片描述
注意:

  • ·seq 1 15·
    中的引号是数字一左边的反引号,不是正常的单引号。

循环语句While

打印1加到100
在这里插入图片描述
打印结果
在这里插入图片描述
在这里插入图片描述

中间太长我就不截了

注意:

  • shell中的加减乘除都是用 expr来表示的
    例如加法
`expr $a + $b`

除法

`expr $b / $a`

而且注意空格:等式左右两边是不能有空格的。而表达式中要有空格。
反引号(1左边的是反引号)。

  • while((i<100))的改写
    在这里插入图片描述
    我们可以将 while那块的表达式进行改写。 将小于号变成 -lt 。 同时加上中括号。 注意空格

while读文件

read命令可以读取。 通过echo $line将文件取出。
我们建立一个text文件
在这里插入图片描述

用shell脚本读取文件
在这里插入图片描述
读取结果
在这里插入图片描述

if语句

格式

if语句

if condition
then
    command1 
    command2
    ...
    commandN 
fi

if else语句

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

注意:
if()后面没有{} 只需要;
语句一定要有tab键输入,不能是空格。空格在shell中不能随便写,是一种特殊的予以代表分割。

例子

在这里插入图片描述

输出:
在这里插入图片描述

运算符

算数运算符

运算符 说明 举例
+ 加法 expr $a + $b 结果为 30
- 减法 expr $a - $b 结果为 -10
* 乘法 expr $a \* $b 结果为 200
/ 除法 expr $b / $a 结果为 2
% 取余 expr $b % $a 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a
== 相等。用于比较两个数字,相同则返回 true [ $a == $b ] 返回 false
!= 不相等。用于比较两个数字,不相同则返回 true [ $a != $b ] 返回 true

注意:条件表达式要放在方括号之间,并且要有空格,例如: [ a = = a== b] 是错误的,必须写成 [ $a == $b ]
乘号(*)前边必须加反斜杠()才能实现乘法运算

算数运算的方式

  • 使用$(())
  • 使用$[]
  • 使用let
  • 使用expr

关系运算符

在这里插入图片描述

布尔运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

字符串运算符

在这里插入图片描述

文件测试运算符

在这里插入图片描述
以上来自
菜鸟教程Shell

重定向

重定向方式

  • <输入重定向
  • >输出重定向

第一种<输入重定向

将 text输入到屏幕
在这里插入图片描述

第二种输出重定向

在这里插入图片描述

函数

  • shell中的函数和大多数的编程语言函数一样
  • 将相似的任务或代码封装到函数中,供其他地方调用
name()
{
	command;
	command2;
}
[ function ] funname [()]
{
	action;
	[return int;]
}

写一个函数

在这里插入图片描述
打印结果:

在这里插入图片描述
注意:

  • test是运行函数,在函数下面写,顺序执行的。

参数传递

参数传递直接在test后面添加即可
在这里插入图片描述

打印结果
在这里插入图片描述

发布了93 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/sxj159753/article/details/95806774
今日推荐