Linux bash基础特性二
shell脚本的组成部分
- shebang
- 各种命令组合
编程变量种类
- 本地变量: 仅仅在当前的shell生效
- 环境变量: 在当前和子shell生效
- 局部变量: shell进程某代码片段
- 位置变量: $1,$2来表示,用与获取脚本接受的参数
- 特殊变量: 一些特殊变量
一、编程环境
特殊变量如下
- $?:上一个命令的执行返回码
- $#:参数个数
- $*:参数
- $0:命令本身
- $@:所有参数
本地变量: name=’value’
环境变量:export name=value,declare -x name=value
查看环境变量: env,export,printenv变量
bash的配置文件
针对系统的别名:”/etc/bashrc”
系统环境变量:/etc/profile
profile:用于定义环境变量和脚本
bashrc:用于定义命令别名和本地变量
按照生效范围,存在两类:
全局配置文件:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置文件
~/.bashrc
~/.bash_profile
按照功能划分,存在两类:
profile类:为交互式登录shell提供配置
全局:/etc/profile,/etc/profile.d/*.sh
个人:~/.bash_profile
bash类:为非交互式登录shell提供配置
全局:/etc/bashrc
个人:~/.bashrcr
1.算术运算:bash会对数字进行隐形的类型转换
运算操作符:+,-,*,/,%,
let a=expr
$[expr]
$((expr))
expr a1 op a2
注意:乘法符号有些场景需要转义:"\"
2.条件测试:判断某需求是否满足,需要有测试机制来实现;
- test expr
- [ expr ]
- [[ expr ]]
3.数值测试
- -gt 是否大于
- -lt 是否小于
- -eq 是否等于
- -ge 是否大于等于
- -le 是否小于等于
- -ne 是否不等于
4.字符串测试
- ==
- >
- <
- !=
- =~ 左侧的字符串是否能被右侧的pattern所匹配
- -z “String” 测试字符串是否为空,空为真,不空则为假
- -n "String" 测试字符串是否不空,不空为真,空则为假
5、文件测试:测试文件的属性信息,如存在、类别、权限
1)存在性测试
- -a file
- -e file: 文件存在性测试,存在为真,否则为假
2).存在性及类别测试
[ -b "filevar" ] 是否存在且为块设备文件
[ -c "filevar" ] 是否存在且为字符设备文件
[ -d "filevar" ] 是否存在且为目录
[ -f "filevar" ] 是否存在且为普通文件
- -S file :存在且为socket
- -p file 是否存在且为管道文件
- -h 或者 -L file 是否存在且符号链接文件
3).存在性及文件权限测试
- -r file 是否存在且可读
- -w file 是否存在且可写
- -x file 是否存在且可执行
4).存在性及文件特殊权限测试
- -g file 是否存在且拥有sgid权限
- -u file 是否存在且拥有suid权限
- -k file 是否存在且拥有sticky权限
5).存在性及文件大小测试
- -s file 是否存在且非空
6).存在性及文件是否打开
- -t fd :表示文件描述符是否已经打开且与某个终端先关
- -N file :文件自上次被读取之后是否被修改过
- -O file:当前有效用户是否是文件属主
- -G file:当前有效用户是否是文件属组
7).双目测试
- file1 -ef file2: file1与file2是否指向同一个设备上相同inode
- file1 -nt file2 : file1的mtime新于file2则为真,否则为假
- file1 -ot file2: file1的mtime旧于file2则为真,否则为假
6.组合测试条件
在shell编程当中支持一些逻辑运算:true(1),false(2)
echo $? : 上条命令执行返回状态码,成功返回0,失败返回非0
与运算:
&&:两个都为真则为真
真 && 真 = 真 or 1 && 1 = 1
真 && 假 = 假
假 && 真 = 假
假 && 假 = 假
或运算:|| 表示 有一个为真则为真
非运算:
真,非真
假,非假
Linux bash基础特性二的更多相关文章
- Linux bash基础特性一
命令别名 alias cdnet=”cd /etc/sysconfig/network-scripts” 针对用户的别名: “~/.bashrc” 针对系统的别名:”/etc/bashrc” 重读配置 ...
- linux bash基础特性
使用history命令,取得命令历史,当bash进程结束后,会把命令历史存放到文件中,下次开机还能看到命令历史. 定制history:通过设置环境变量,来定制history 环境变量$HISTSIZE ...
- linux bash基本特性
一.bash 基础特性 (1)命令历史的功能 history: 环境变量 HISTSIZE:命令历史记录的条数 HISTFILE: ~/.bash_history 每个用户都有自己独立的命令历史文件 ...
- linux文件系统及bash基础特性
linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...
- Bash 基础特性
命令别名 alias 显示当前shell中定义的所有别名 alias 别名='原始命令' unalias 别名 取消定义的别名在命令前加\使用命令本身,而不是别名(或者使用绝对路径执行命令使用命 ...
- linux系统基础(二)
磁盘管理(一) Linux设备认识 /dev/cdrom /dev/sr0 /dev/mouse /dev/sda /dev/hda IDE硬盘(支持4块):hd(a-d) [非IDE硬盘]SCSI硬 ...
- bash基础特性3(shell编程)
Linux上文本处理三剑客: grep:文本过滤工具 sed:stream editor,文本编辑工具 awk:文本报告生成器 grep -v:显示不能够被pattern匹配到的行 -i:忽略字符大小 ...
- bash基础特性2
命令别名(alias) ()alias 显示当前shell进程所有可用的命令别名: ()alias NAME='VALUE' 定义别名NAME,相当于执行命令value ()unlias 撤销别名 注 ...
- bash基础特性1
shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器. BASH是SHELL的一种,是大多数LINUX发行版默认的SHELL,除BASH SHELL外还有C SH ...
随机推荐
- 点评cat系列-应用集成
========================消息的基本属性========================消息的几个属性:type: 定义消息的 category, 比如 SQL 或 RPC 或 ...
- [再寄小读者之数学篇](2014-10-27 Frobenius 范数是酉不变范数)
对任两酉阵 $U,V$, 有 $$\bex \sen{A}_F=\sen{UAV}_F. \eex$$ 事实上, $$\beex \bea \sen{UAV}_F^2&=\tr(V^*A^*U ...
- John von Neumann和Ulam
John von Neumann和Ulam是好朋友,两人经常在一起喝酒.旅行.谈女人.有一次诺伊曼认出身边的一位女士,他们交谈了几句.随后他给Ulam介绍那是他的一位老朋友,刚刚离婚.Ulam就问:那 ...
- NightWatch端到端测试
NightWatch http://nightwatchjs.org/ Nightwatch.js Browser automated testing done easy. Write End-to- ...
- 通过IDEA搭建scala开发环境开发spark应用程序
一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下. 1.打开idea,点击c ...
- 第四周结对项目总结及改进(ui/web)
项目介绍 随着社会科技的进步和多媒体教育的日益发展,越来越来的学生正在接受着新时代下的教育模式,而且手机.电脑等科技产品的普及以及其带来的更高效更便捷的模式 使得它们成为当代学生学习中的一种很好的学习 ...
- vue全局引入scss文件(推荐)
<template> <div id="app"> <router-view/> </div> </template> ...
- Centos-6服务器源配置(使用阿里云的源镜像)
首先在VM中安装从 https://mirrors.aliyun.com/centos/ 中下载好的centos镜像(这里以centos6.9 64 为例). 安装完成后先要进行备份 mv /etc ...
- H - Partial Tree HDU - 5534 (背包)
题目链接: H - Partial Tree HDU - 5534 题目大意:首先是T组测试样例,然后n个点,然后给你度数分别为(1~n-1)对应的不同的权值,然后问你在这些点形成树的前提下的所能形 ...
- CF1153D Serval and Rooted Tree(树形DP)
题目链接: https://www.luogu.org/problemnew/show/CF1153D (cf崩了,贴了个落谷的) 题目大意:给你n个点,然后n-1条边,构成一棵树,每个点是子节点 ...