shell脚本一些常用命令

重定向 多行重定向

类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出( )>将输出结果保存到指定的文件(覆盖原有内容)
>>将输出结果追加到指定的文件尾部
标准错误输出( )>将错误信息保存到指定的文件(覆盖原有内容)
( )>>标准错误输出结果追加到指定的文件尾部
混合输出&>无论对错都可以重定向将标准输出、标准错误的内容保存到同一个文件中

& 代表混合

多行重定向

可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件并用作命令的标准输入。
可用于将内容写入文件,修改密码,变量赋值,多行注释

管道符

将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以 叠加使用
*管道符 | *
在这里插入图片描述假设我们要只显示网卡的ip地址就会用到管道符
查看网卡
在这里插入图片描述只显示ip地址
在这里插入图片描述

弱引用和强引用

"$name " 弱引用,其中的变量引用会被替换为变量值

'$name ’ 强引用,其中的变量引用不会被替换为变量值,而保持原字符串
在这里插入图片描述

1.赋值时使用双引号(" ")可以直接调用变量

2.赋值时使用单引号(’ ') 只会被认为是字符 只会被认为是字符 只会被认为是字符 不会调用变量

3.赋值时使用(``反撇在tab上面)命令替换,提取命令执行后的输出结 果 和$( ) 用法相同

4.{}可以分隔变量值

read -p

从键盘输入的内容变成变量
在这里插入图片描述

变量作用范围

默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量,当进入子程序或新的shell环境中,局部变量将无法再起作用。

可以通过内部命令export将指定的变量为全局变量,使用户定义的变量在所子shell环境中可以继续使用

方法:

  1. 格式1:export 变量名
  2. 格式2:export 变量名=变量值

可以使用pstree 查看shell的环境

输入bash进入子shell

ctrl+D组合exit 退出子shell

整数的运算

expr只能进行整数的运算

格式: expr 变量1 运算符 变量2 [运算符 变量3]

运算符:

加法 +

减法 -

乘法 \ *

除法 /

取余 (取模)%


在这里插入图片描述let 支持加加减减 使用较多
i++ 是先赋值再加
++i 是加后再赋值

在这里插入图片描述i++ 相当于 i=$[ $i+1 ]

i-- 相当于 i=$[ $i - 1 ]

i+=2 相当于 i=$[ $i+2 ]

环境变量

  1. 由系统提前创建,用来设置用户的工作环境
  2. 可以使用env查看环境变量
  3. 需要记住的常用环境变量

$USER 表示用户名称

$HOME 表示用户的宿主目录

$LANG 表示语言和字符集

$PWD 表示当前所在工作目录

$PATH 表示可执行用户程序的默认路径
在这里插入图片描述

环境变量:

  • 可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量
  • 一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程
  • 一般只在系统配置文件中使用,在脚本中较少使用
    在这里插入图片描述

只读变量

变量值不允许修改(重新赋值)的情况

法使用 unset删除

最快解决方法重启

位置变量

位置变量也称为位置参数,使用$1、$2、$3、…、$9 表示
在这里插入图片描述

测试

操作符:
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-a:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
-L: 测试是否为软连接文件

属性测试补充:
-s FILE #是否存在且非空
-t fd #fd 文件描述符是否在某终端已经打开
-N FILE #文件自从上一次被读取之后是否被修改过
-O FILE #当前有效用户是否为文件属主
-G FILE #当前有效用户是否为文件属组

测试过程,实现评估布尔声明,以便用在条件性环境下进行执行

若真,则状态码变量 $? 返回0

若假,则状态码变量 $? 返回1

比较整数数值

[ 整数1 操作符 整数2 ] 公式

  • -eq:第一个数等于(Equal)第二个数
  • -ne:第一个数不等于(Not Equal)第二个数
  • -gt:第一个数大于(Greater Than)第二个数
  • -lt:第一个数小于(Lesser Than)第二个数
  • -le:第一个数小于或等于(Lesser or Equal)第二个数
  • -ge:第一个数大于或等于(Greater or Equal)第二个数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值