shell的基础

什么是shell:

    shell又叫做命令解释器,他可以识别用户输入的各种命令,并且传递给操作系统,他的作用类似于windows操作系统中的命令行,但是shell的功能远比命令行强大的多,在unix或者localhost中,shell既是用户交互界面,也是控制系统的脚本语言。

shell脚本的基本元素:

  1. 声明:声明使用来解释用哪个命令解释器来解释并且执行当前脚本文件中的语句,一班写的解释器是“#!/bin/bash”
  2. 命令:可执行的语句,实现程序的功能。
  3. 注释:说明某些代码的功能,通过在代码中添加注释,增加了代码的可读性。

1)单行注释:以#开头的一整行都是注释
#comment1
#comment2
2)多行注释:使用冒号,配合here document可以实现多行注释
:<<BLOCK
…注释内容
BLOCK

基本语法

echo命令

echo命令的作用是在屏幕前输入一行文本,可以将该命令的参数原样输出。
在这里插入图片描述

echo后可以跟的参数
-n参数:不换行的输出内容
-e参数:解析转义字符
转义字符:
转义字符说明
\n换行
\r回车
\t制表符
\b退格
\v纵向制表符
命令格式

shell命令的基本都是以下格式:
1.command [ arg 1 …[ argN ] ]:command是具体的命令或者一个可以执行文件,arg1 。。。 argN是传递给命令的参数,他们是可选的。
2.comment foo bar:foo和bar中间有个空格,所以bash认为这是两个参数,但是当有多个空格的时候,bash会自动忽略空格。在这里插入图片描述
3.分号:在一个命令行中输入多个命令可以使用“;”来隔开:
当在命令行中想要先清屏在查询当期目录下的文档,使用命令:**clear ; ll **
结果就是:先进行清屏,然后再进行查询在这里插入图片描述

3.命令组合符&&和||:**&&表示且,||**表示或者。
&&cat filetlist.txt && ls -l filelist.txtb只有前面那条命令执行成功才会执行后面一个任务,而使用分号的时候是不论前面指令的执行是否成功,都会执行后面那条指令。
||mkdir foo || mkdir bar只有mkdir foo这条命令执行失败才会继续执行mkdir bar的命令;如果mkdir foo这条命令执行成功,则不会创建bae目录了。

函数

函数是可以重复使用的代码片段,有利于代码的重复使用;
函数定义的语法:
第一种:`fn() {
					#codes
				}`	
 第二种: `function fn() {
 						#codes
 				  }`

举例:这里输入的word就作为$1的值传给hell0()函数。
这里输入的word就作为$1的值传给hell0()函数。

参数变量

函数体内可以使用参数变量,获取函数参数变量,与脚本参数变量是一致的。

  • $1~$9:函数的第一个到第9个的参数。
  • $0:函数所在的脚本名
  • $#:函数的参数总数
  • $@:函数的全部参数,参数之间使用空格分隔。
  • $*:函数的全部参数,参数之间使用变量 $IFS值得第一个字符分隔,默认是空格,但是可以自定义
  • $?:返回上一条指令是否执行成,执行成功的话输出0,输出除了0意外的数都是执行失败

下面例子中由于alice只有第一个和第二个参数,所以三四参数为空。在这里插入图片描述在这里插入图片描述

算术运算

算术表达式

(( … )) 语法可以进行正数的算术运算。

(( foo = 5 + 5 ))
echo $foo
10

在这里插入图片描述

(( … ))会自动省略空格,所以怎样写都可以。

(( … ))语法支持的算术运算符如下:

  • +:加法
  • -:减法
  • *:乘法
  • /:除法(整除)
  • %:余数
  • **:指数
  • ++:自增运算(前缀或后缀)
  • --:自减运算(前缀或后缀)
    另外需要注意的是,当执行除法的时候,会出现小数的结果保留整数位。
    在这里插入图片描述
逻辑运算

$((…))支持以下的逻辑运算符。

  • <:小于
  • :大于

  • <=:小于或相等
  • =:大于或相等

  • ==:相等
  • !=:不相等
  • &&:逻辑与
  • ||:逻辑或
  • !:逻辑否
#如果逻辑表达式为真,则返回1,否则返回0
echo $(( 3 > 2 ))
1
echo $(( (3 > 2) || (4 <=1) ))
1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值