bash的基本特性

author author     2022-08-28     622

关键词:

Bash基本特性:

首先得从逻辑运算来说起:

与运算  &&

两个判断条件都必须为真时,状态才为真,否则都为假,在此1是真,0是假


1 && 1 = 1

1 && 0 = 0

0 && 1 = 0

0 && 0 = 0


或运算 ||

两个判断条件中都必须为假时,那么这个或运算就为假


0 || 0 = 0

0 || 1 = 1

1 || 0 = 1

1 || 1 = 1


非运算 !

!1=0 //这里的意思就是,不是真,那就是假

!0=1



echo $? //用来查看上一个命令执行是否成功。

“进程生命周期”的知识:

当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。


也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。//了解一下就好,知道怎么用好了


来下列示题来演示一下:

ls /var && echo "successful" //这里的意思就是如果ls命令能够执行成功,那么也就会输出successful,状态值就是真的

ls /var && echoo "successful" //这里ls命令能够执行成功,但是echo命令确写错了,所以这两个命令在一起,最后得到的状态也是假的

lss /var && echo "successful" //两个命令都是错的,所以最后得到的状态也是假的。


ls /var || echo "successful" //两个命令都能正确执行,所以最后得到的状态是真的

ls /var || echoo “successful” //ls命令是错的,所以最后得到得状态是真的

lss /var || echoo "successful" //这两个命令都不能成功执行,所以按照或运算的规则,那么得到的状态值就是假的


bash变量种类:

可分为三种变量:

本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程包括当前shell的子shel进程均无效

环境变量:生效范围为当前shell进程和子进程

局部变量:生效范围为当前shell进程中某代码片段(通常指函数)

位置变量:$1,$2,$3....,用于入脚本在代码中调用通过命令行传递缎带它的参数


特殊变量:

$? :上个命令执行成功与否的结果0为成功,其它都为假

$0  :表示命令本身

$#  :传递给脚本参数的个数

$*  :传递给脚本的所有参数

[email protected]  :引用传递给脚本的所有参数


变量名的命名法则:

不能使用程序中的保留字如:if,for...

只能使用数字、字母、下划线、且不能使用数字开头





变量赋值:

1、可以直接赋值字符串:name="string"

2、变量引用:name="$string"

3、命令引用:name=`COMMAND` 或 name=$(COMMAND)  也就是相当于你调用这个变量的时候,它自动的在shell中执行一遍,在返回给你的值。


变量引用:$name 或 ${name}

弱引用 “” 其中的变量引用会被为变量值

强引用 ‘’ 其中的变量不会被替换为变量值,而保持原字符串不变


显示已定义的变量:set 

取消变量:unset name



环境变量:

赋值、声明:

export name=VALUE  

delcare -x name=VALUE

变量引用$name ${name}

显示所有环境变量:

export

env

printenv


bash的配置文件:

全局的是:/etc/profile.d/*.sh  结尾的文件,也可以自己写文件在执行一下

 /etc/profile


个人配置文件:~/.bash_profile

~/.bashrc


在文件中写好后,可以执行

source file   //file就是你写的配置文件,就可以在当前shell中生效了


bash中的算术运算:

操作符有:+、—、*、/、%、**

算术运算的实现方式:

1、let Var_Name=EXPRESSION

2、$[EXPRESSION]

3、$((EXPRESSION))


增强型复制:

+=、-=、*=、/=、%=、

例如:

let count+=1 即 let count=count+1

自增、自减

let var+=1 即 let var++

let var-=1 即 let var--


接下来就是比较重要的条件测试 了:

条件测试:

判断某需求是否满足,需要有测试机制来实现,

Note:专用的测试表达式需要有测试命令辅助完成测试过程:

测试命令有:

1、test EXPRESSION

2、[ EXPRESSION ]

3、[[ EXPRESSION ]]

注意:EXPRESSION前后必须有空白字符!


bash的测试类型:

数值测试:

-gt 是否大于

-ge 是否大于等于

-eq 是否等于

-ne 是否不等于

-lt 是否小于

-le 是否小于等于


字符串测试:

== 是否等于 

> 是否大于 

< 是否小于

!= 是否不等于

=~ 左侧字符串是否能够被右侧的PATERN所匹配

-z "string" 测试字符串是否为空,空测为真,不空则为假

-n "string" 测试字符串是否为不空,不空则为真,空则为假


文件测试

1、存在必测试:

-a FILE (少用)

-e FILE 文件存在测试,存在为真,否则为假


2、存在性及类别测试:

-b FILE 是否存在且为块设备

-c FILE 是否存在且为字符设备

-f FILE 是否存在且为普通文件

-d FILE 是否存在且为目录文件

-h FILE 或 -L FILE 是否存在且为符号链接

-s FILE 是否存在且为套接字文件

-p FILE 是否存在且为管道文件


3、文件权限测试:

-r FILE 是否存在且可读

-w FILE 是否存在且可写

-x FILE 是否存在且可执行


4、文件特殊权限测试:

-g FILE 是否存在且拥有sgid权限

-u FILE 是否存在且拥有suid权限

-k FILE 是否存在且拥有sticky权限


5、文件大小测试:

-s FILE 是否存在且为空


本文出自 “10958002” 博客,请务必保留此出处http://10968002.blog.51cto.com/10958002/1917012

bash基本特性

特性之引用引号有三种类型:’,“,`字符引用’:强引用,其内部的变量不会被替换;“:弱引用,其内部的变量会被替换;`:命令引用。命令会被替换成命令的结果被使用变量引用:${NAME},可简写$NAME#echo‘$PATH‘//强引用$PATH#e... 查看详情

bash基本特性及linux基本命令

bash基本特性及linux基本命令1、命令历史      history         环境变量:            HI 查看详情

bash基本特性及linux基本命令

bash基本特性及linux基本命令1、命令历史      history         环境变量:            HI 查看详情

04bash程序的基本特性

  我们知道Linux系统有两种操作方式,一种为GUI的图形界面化管理方式,其中图形程序常见的有Gnome、KDE、xfce;另一种管理方式就是就是GLI的命令行管理方式,而命令行的管理方式就是通过shell程序来进行管理,而shell程序则分... 查看详情

linux下部分文件管理类基本命令汇总以及bash展开特性介绍(代码片段)

一、文件管理类基本命令1.1、表格汇总今天要讲解的命令如下表所示,按照外部命令和内建命令做基本划分:内建命令列表:命令名字基本说明file检测文件类型cd改变shell的工作目录dirs显示目录堆栈信息popd从堆栈中移除目录pushd... 查看详情

续写vim编辑器的功能和bash的特性感悟

...习了vim跟shell交互和部分另存为的命令,至此vim编辑器的基本操作就学习完了,剩下的就需要我们在日常使用中加深印象,越来越熟练的掌握操作了。Bash的特性也有好多,本次课我们开 查看详情

续写vim编辑器的功能和bash的特性感悟

...习了vim跟shell交互和部分另存为的命令,至此vim编辑器的基本操作就学习完了,剩下的就需要我们在日常使用中加深印象,越来越熟练的掌握操作了。Bash的特性也有好多,本次课我们开 查看详情

bash的特性

bash的特性Bash(GNUBourne-AgainShell)是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shel... 查看详情

bash特性

bash的基础特性(1): (1)命令历史history系统中history环境变量:HISTSIZE:命令历史记录的条数;HISTFILE:~/.bash_history;HISTFILESIZE:命令历史文件记录历史的条数; history-dOFFSET(具体删除第几条历史记录)history-c 清空所有... 查看详情

bash特性

bash特性一、命令别名:(自定义命令) 用alias命令查看 alias命令可以用来定义和现实命令的别名 但是使用alias命令定义的别名,其生命仅为当前shell的生命期 对于每个用户来说,都有一个私有的bash文件,用于保... 查看详情

bash基础特性

...的环境变量可以通过ehco$#查看#为环境变量 bash的基础特性:(1)命令历史 history 环境变量: HISTSIZE:命令历史记录的条数 HISTFILE;~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 history-doffset删除某条历史命令 his... 查看详情

bash基础特性

bash特性及bash脚本编程初步终端,附着在终端的接口程序:    GUI:KDE,GNome,xfce    CLI:/etc/shellsbash的特性:    命令行展开:~,{}    命令别名:alias,unalias&nbs 查看详情

bash的特性之多命令执行

bash的特性之多命令执行  一上午的时间学习了bash的特性之多命令执行,和对shell脚本编程的初步学习。bash的特性的多命令执行的顺序执行结构就是把几个命令用分号隔开。而选择执行结构有与、或、非三种运算法则。shel... 查看详情

bash特性之五

一、bash特性之四,命令别名alias,shell的内建命令,显示当前系统所有的命令别名alias别名="原始命令"ualias别名撤销已经定义的别名。命令使用命令本身,而非命令别名。二、bash特性之五,globbing,统配符 *:匹配任意长度的... 查看详情

bash特性及用户和组管理

bash特性及用户和组管理 上篇博文中总结了bash的一些特性,这次做补充: bash变量 变量:一段由名称的连续的内存空间;这段内存空间的名称,就是变量名,在这   段内存空间存储数据 就是变量值;&nb... 查看详情

08-bash基础特性及基础命令

bash的基础特性  (1)命令历史 history HISTSIZE:命令历史记录的条数: HISTSIZE:~/.bash_history HISTFILESIZE:命令历史文件记录的条数: history-dOFFSET   -c history#:显示历史最近的#条命令: -a:手动追加当前会话... 查看详情

bash基础特性命令引用

...D` 这是反引号:就是ESC键下面的那个反引号bash的引用特性: 引用 强引用:‘‘单引号弱引用:""双引号命令引用:$(COMMADN) bash特性:快捷键 ctrl+a:跳转至命令行首ctrl+e:跳转至命令行行尾ctrl+u:删除行首至光标... 查看详情

bash及其特性

...:Gnome,KDE,XfaceCLI:sh,csh,ksh,bash(兼具sh、csh等各种特性,功能更强大,且遵循开源协议),tcsh,zsh进程:在每个进程看来,当前主机上只存在内核和当前进程进程是程序的副本,进程是程序的执行过程用户工作环境:窗... 查看详情