美文网首页
shell脚本编程

shell脚本编程

作者: 简公孙策 | 来源:发表于2020-03-25 09:17 被阅读0次
  • 魔数
    通常用来写在脚本文件的顶部,用来区别普通的文本文件,且指定了脚本文件的解释器编译器等。比如shell文件的第一行要写上 #!/bin/bash 。

  • 变量
    shell中变量分为:
    ①、本地变量:指当前打开的bash进程创建和使用的变量,在bash中直接通过:VARNAME=VALUE声明创建即可,引用的时候使用$VARNAME。局部变量是其一个子集(执行的脚本文件中创建的变量,脚本文件执行完成后,其中的变量自动清除)
    ②、环境变量:bash及其进程中打开的子bash进程都可以使用的变量。声明的前面需要添加 export 关键字。
    ③、位置变量:在执行脚本文件的时候,其后可以跟参数,在脚本文件内部,可以根据$!、$2、$3等指定引用的第几个参数。
    ④、特殊变量(系统变量):系统预置有特殊意义的变量,比如$?表示上一条命令执行状态结果(其值在0-255之间,0表示成功,其它均表示错误);$#表示用户在执行脚本的时候给出的参数的个数;$*和$@会列出所有的脚本参数。
    注: 命令set可以查看所有变量,export 、env 、printenv 可以查看环境变量。unset 变量名,可以删除变量。

    :命令执行结果包括两个,一个是命令执行后产生的输出结果(如果不想命令执行完成后有输出,可以通过“&>/dev/null” 重定向到/dev/null这个虚拟设备中,该设备可以吞噬所有数据),一个是命令执行成功与否的状态结果(其值在0-255之间,只有0表示成功;命令执行完成后,其状态结果会保存在$?变量中,所以在脚本文件中常用作执行逻辑的判断标准,比如:command1 && command2 && command3 ... || commandn,该语法表示,如果第一条命令command1执行成功后就执行command2,command2执行成功后就执行command3 ... ,否则就执行commandn)。
      在脚本文件中,shift 当做脚本参数的轮换命令,每执行一次shift [n]命令,$1中存储的参数就轮换为下一个参数,所以如果有循环执行的换,可以只使用$1变量我们就可以将用户传递的参数轮换一遍。

  • 表达式
    ①、逻辑运算:与&&、或||、非!、异或^(两边相同为false,不同为true)。(注:shell脚本中的&&和||都具有短路功能)

    ②、测试表达式:该表达式主要用来判断,得出一个布尔结果,常跟在if后面,用来作为语句执行与否的判断依据;格式为 test expression 、[ expression ]或[ [ expression ] ]。
    注:bash的条件表达式中有三个几乎等效的符号和命令:test,[]和[[]]。通常,大家习惯用if [];then这样的形式。而[[]]的出现,根据ABS所说,是为了兼容><之类的运算符。[[]] 运算符只是[]运算符的扩充。能够支持<,>符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符。比较它们性能,发现[[]]是最快的。不考虑对低版本bash和对sh的兼容的情况下,用[[]]是兼容性强,而且性能比较快,在做条件运算时候,可以使用该运算符。

      算术比较预算符:等于-qe、不等于-ne、大于-gt、小于-lt、大于等于-ge、小于等于-le。

      文件比较运算符:用法是 -选项 文件路径;-e 文件是否存在、-d 文件是否是目录、-f 文件是否是常规文件、-L 文件是否为符合链接、-r 当前执行用户是否对文件有可读权限、-w 当前执行用户是否对文件有可写权限、-x 当前执行用户是否对文件有执行权限;filename1 -nt filename2 文件1是否新过文件2、filename1 -ot filename2 文件1是否老过文件2、filename1 -ef filename2 文件1和文件2是否为同一个文件。

      字符串比较运算符:用法是 -选项 字符串;-z 字符串长度是否为0、 -n 字符串长度是否非零; str1 = str2 字符串str1是否等于str2、 str1 != str2 字符串str1是否不等于str2。
    参考文章参考文章参考文章

    ③、算术运算表达式:
      格式:
        使用 $[ ] 如: $[ 2+5 ]、 $[ $A + $B ]
        使用 $(( )) 如:$(( 2+5 )) 、$(( $A + $B ))
        使用 expr 外部程式 如:C=`expr 4 + 5`、C=`expr $A + $B`
        使用let 命令 如:let C=4 + 5、let C= $A + $B

相关文章

  • 78.shell编程

    shell编程 Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Pyth...

  • shell编程

    Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Python编程一样,只...

  • shell脚本基础

    编写脚本 编程基础 shell脚本 创建shell脚本 变量 运算 测试 配置用户的环境

  • mac终端下运行shell脚本

    From: 在mac下编写shell脚本并执行 一些资料 Shell教程-for 菜鸟教程 Shell脚本编程30...

  • Shell十三问 学习笔记

    文本处理 Shell脚本编程 Shell 十三问 学习笔记 shell and Carriage 关系 Shell...

  • Shell 脚本的组成部分

    本文参考自 《Linux Shell命令行及脚本编程实例详解 》 Shell 脚本的组成部分:1.Shell 关键...

  • Shell脚本之杂项

    title: Shell脚本之杂项tags: shell编程, 杂项 记录一些学到的shell脚本里面的一些杂项(...

  • shell脚本自学笔记

    一、 什么是Shell脚本 shell脚本并不能作为正式的编程语言,因为它是在linux的shell中运行的,所以...

  • 一起来学Shell脚本(一)

    1. 什么是Shell脚本 shell脚本并不能作为正式的编程语言,因为它是在linux的shell中运行的,所以...

  • shell编程-交互 脚本菜单

    shell编程交互 脚本菜单 shell脚本的交互最常用的方式是使用菜单,通常是echo打印菜单出来。 上面的脚本...

网友评论

      本文标题:shell脚本编程

      本文链接:https://www.haomeiwen.com/subject/qnnzyhtx.html