bash 基础

bash是一些基本的命令组成,要想学好bash脚本,基本命令是必须要记住

红色标记为着重点

1执行命令,利用状态返回值来判断

0 : 成功

1-255:失败

2: 测试表达式

[  expression ]  常用

[[ exprseeion ]]

bash 的测试类型

字符串字型    文件字型

测试数值:比较大小

-eq  : 是否等于 [ $1  -eq  $2 ]

-ne :  是否不等于 [ $1 -ne  $2]

-gt :  是否大于 [ $1 -gt $2 ]

-ge :  是否大于等于[ $1 -ge $2 ]

-lt :  是否小于  [ $1  -lt $2 ]

-le : 是否小于等于 [ $1 -le $2 ]

字符串测试。字符串比较

==: 是否等于

> :是否大于

< : 是否小于

! = :是否不等于

=~: 左侧字符串的字符能够被右侧的pattern所匹配

-z " string"  判断指定的字符串是否为空。空则为真,不空则假

-n "string" 判断指定的字符串是否为不空。不空则为真,不空为假

注意:

(1) 字符串要加引号

(2) 在作字符串的比较的时候,格式如下:

if [ "$VARIABLE" == "$VARIABLE"  -a   "$VATIABLE" == "CPU" ];then    需要在运算符号两边有空格 ,并且使用双引号将字符串包裹起来,这样即使是变量也可以替换

文件测试

存在性测试
    -a file   //a -a b (:和)  
    -e file  //检测存在性
    文件的存在性测试,存在为真,否则为假

文件类型测试
    -b file:是否存在并且为块设备文件
    -c file:是否存在并且为字符设备文件
    -d file:是否存在并且为目录文件
    -f file:是否存在并且为普通文件
    -h/l file:是否存在并且为符号链接文件
    -p file:是否存在并且为管道文件
    -S file:是否存在并且为套接字文件

文件权限测试
    -r file:是否存在并且为当前用户可读
    -w file:是否存在并且为当前用户可写
    -x file:是否存在并且为当前用户可执行

特殊权限测试
    -u file:是否存在并且为拥有SUID权限
    -g file:是否存在并且为拥有GUID权限
    -k file:是否存在并且为拥有Sticky权限

文件是否有内容
    -s file:是否存在并且有内容

变量是否有为空,为空则为真
    -z ""$VARIABLE"

文件的时间戳测试
    -N file:文件自从上次被读取后是否修改过

从属关系测试
    -O file:当前用户是否为文件的属主
    -G file:当前用户是否属于文件的属组

双目测试
    file1 -ef file2:是否为同一文件系统上的指向同一iNode的硬链接
    file1 -nt file2:file1 是否新于file2
    file1 -ot file2:file1 是否旧于file2

组合条件测试

特殊变量

$0:脚本文件路径名称本身
$#:保存了脚本参数的个数
$*:所有参数
[email protected]:所有参数

时间: 2024-08-27 08:59:09

bash 基础的相关文章

4、Bash基础及配置、标准I/O、管道及shell编程基础;

1.Bash基础及配置 站在用户的角度来讲,SHELL的类型: 登录式shell 正常通过某终端登录 su - USERNAME su -l USERNAME 非登录式shell su USERNAME 图形终端下打开的虚拟终端 自动执行的shell脚本 bash的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh , /etc/bashrc 个人配置: ~/.bash_profile, ~/.bashrc profile类的文件 1.设定环境变量 2.运

Linux 入门学习之bash基础原理之一

Linux入门之bash基础 编程语言分类: 机器语言.汇编语言.高级语言 静态语言:编译型语言 特点: 变量为强类型 实现转化为一定的可执行格式 常见:C.C++.JAVA.C#.Object-C 注意:一般需要解释器的编程语言一般为静态语言 动态语言:解释性语言 特点: 变量未弱类型,边解释边执行 常见: PHP.SHELL.python.perl lua : 嵌入式脚步语言 编程语言的模型.思想分类 面向过程: shell,C 面向对象: java,python,perl,c++ 一个变量

Bash基础(2) 通配符 组合键 数据重定向 管道 tee

Bash基础(2)     通配符  组合键  数据重定向  管道  tee命令 1 文本名"通配符" *:匹配任意长度的任意字符: ?:匹配任意单个字符: []: 匹配指定范围内的任意单个字符: [0-9] [^]:匹配范围外的任意单个字符: [^a-b] 字符集合: [:lower:] 匹配任何小写字母 [:upper:] 匹配任何大写字母 [:alnum:] 匹配任何字母 [:digit:]  匹配任何数字 [:space:] 匹配空格符 [:punct:] 匹配任何标点符号 [

谢烟客---------Linux之Bash基础特性条件测试&&自定义退出状态码(6)

条件测试 判断某需求是否满足,需要由测试机制来实现. 根据命令的执行状态结果,表达不同的测试条件 1.根据id命令的执行状态结果,判断用户是否存在 [[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root) [[email protected] ~]# echo $? 0 [[email protected] ~]# id help id: help: no such user [[email protected] 

centos6.5 bash基础命令2

@@@第三天第二段 @@stat命令:查看文件的元数据信心!Inode stat FILE... bash文本编辑器编辑器:进行文本内容修改的程序 行编辑器:sed 全屏编辑器:nano, vi, vim @@nano FILE... 用户和权限管理: 1.用户是什么? 2.没有用户计算机也可以正常运行 用户:用户就是计算机系统按需对操作人员授权,标识资源获取的识别符!资源分配,是安全权限模型的核心要素之一 密码:用户认证,对用户是否具有授权进行验证! 多用户的操作系统:同一时间允许多个用户对计

Bash基础知识

在网上找了一些Shell/bash基础知识. // Study_shell.txt // 2016.1.1 by Huangtao 1. 定义变量时,变量名不加美元符号,变量名和等号之间不能有空格. 使用一个定义过的变量,只要在变量名前面加美元符号即可. 推荐给所有变量加上花括号,帮助解释器识别变量的边界. 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变. readonly a 使用 unset 命令可以删除变量,不能删除只读变量. 2. Shell字符串可以用单引

0823第三课-2 Linux的文件系统 bash基础特性

1.linux文件系统 绝对路径:/ LSB: FHS(文件系统层级结构标准) FHS: /boot: 引导文件存放目录,例如kernel(vmlinuz).bootloader(grub, grub2): 包含开机菜单以及开机所需要的配置文件等等 [[email protected] boot]# lsconfig-2.6.32-504.el6.x86_64         lost+foundefi                                  symvers-2.6.3

2017-11-5Linux基础知识(10)bash基础特性

在上一章中我们讲述了bash基础特性之命令补全和路径补全以及它的命令引用,以及讲了文件管理命令,例如:复制.移动和删除,然后我们也讲述了变量,主要围绕着存储格式.数据范围和参与运算.那么这次我们继续讲述bash的基础特性,这一次我们讲述的是文件的通配符和IO重定向等. 一.globbing:文件名通配 我们在查询某些文件的时候,通常是在该目录下进行查找,有的时候文件繁多,想找一些特定的文件就得从该目录下逐个匹配进行查找进行通配,如果没找到则显示为空,找到的话就在下面显示该匹配结果的文件或目录,那

cmd 与 bash 基础命令入门

身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>?<) cmd 与 bash 基础命令入门 ??????简介 ??????CMD 基础命令 ????????????目录操作 ??????????????????切换目录 ??????????????????列出文件与子目录 ??????????????????创建目录 ??????????????????删除目录 ??????????????????复制目录 ??????????????????移动目录 ????

Bash基础——减号-

参考:Bash基础——pipe pipe命令在 bash 的连续的处理程序中相当重要.在pipe命令当中,常常会使用到前一个命令的 stdout 作为这次的 stdin , 某些命令需要用到文件名 (例如 tar) 来进行处理时,该 stdin 与 stdout 可以利用减号 "-" 来替代, 举例来说: tar -cvf - /home | tar -xvf - 将 /home 里面的文件打包,但打包的数据不是纪录到文件,而是传送到 stdout: 经过pipe后,将 tar -cv