• shell脚本自学笔记


    脚本体知识点

    解释器

    # !/bin/bash(默认)
    
    # !/bin/ksh
    
    # !/bin/bsh
    
    # !/bin/sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    文件权限

    文件权限:-	rw-	r--	r--
    		目录权限:drw-r--r--
    		分三列:每三个为一列,分别是所有者(owner),所属组(group),其他(others)
    
    		rwx r:4 w:2 x:1
    
    		7	5	5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    脚本执行方法

    添加执行权限 chmod +x shell.sh
    
    	方法1:./shell.sh
    
    	方法2:sh shell.sh 或者bash shell.sh
    
    	方法3:source shell.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    脚本内容知识点

    常见变量

    shell的变量直接使用,eg:a=15
    调用变量的话 $a 或者 ${a}
    
    • 1
    • 2

    image-20221126232135595

    
    $0 当前执行shell脚本的名字
    $1-9 从输入的参数中,按位次取数
    $# 脚本获得到的输入参数个数
    $* 脚本获取到的所有参数
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例子:

    #/bin/bash
    #变量
    #author:YS
    echo "shell_name: $0"
    echo "账号:$2"
    echo "密码:$1"
    echo "总共输出的参数:$# "
    echo "输入的参数为:$* "
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出图示:

    image-20221126230933657

    常见的符号

    	>  会覆盖原有的内容
    
    	>> 不会覆盖原有的内容
    
    	;	#执行多条命令
    
    	|  #管道符 将前面的结果传递给后面
    
    	&& #前面的命令执行成功,后面的才可以执行
    
    	|| #前面的命令执行失败,后面的才可以执行
    
    	"" #会输出变量值
    
    	'' #输出本身
    
    	`` #输出命令结果 eg:a=`date`;echo $a
    
    	2>/dev/null  #错误输出到无底洞
    	1>/dev/null	 #正确输出到无底洞
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    演示例子

    • ‘>’ 和 ‘>>’

    image-20221126234305151

    • ; #执行多条命令

      image-20221126234429756

    • | #管道符 将前面的结果传递给后面

      image-20221126234707373

    • && #前面的命令执行成功,后面的才可以执行

    image-20221126234806271

    • || #前面的命令执行失败,后面的才可以执行

    image-20221126234842539

    • “” #会输出变量值 ,‘’ #输出本身

      修改之前的test.txt,将密码的那一行 “”变为了‘’。
      #/bin/bash
      #变量
      echo "shell_name: $0"
      #author:YS
      echo "账号:$2"
      echo '密码:$1'
      echo "总共输出的参数:$# "
      echo "输入的参数为:$* "
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

    image-20221126235334095

    • `` #输出命令结果 eg:a=date;echo $a(提示这和符号是esc键下面的那个按键 ,我叫它为反撇号)

    image-20221126235803812

    • ​ 2>/dev/null #错误输出到无底洞
    • ​ 1>/dev/null #正确输出到无底洞

    image-20221127000509620

    符号是esc键下面的那个按键 ,我叫它为反撇号)

    image-20221126235803812

    • ​ 2>/dev/null #错误输出到无底洞
    • ​ 1>/dev/null #正确输出到无底洞

    image-20221127000509620

    运算符

  • 相关阅读:
    控制语句之break、continue、return的用法(练习题)
    02 ts 变量定义,类型
    sh多种赋值方式和连续输出值
    Gmail 将停止支持基本 HTML 视图
    【嵌入式开发学习】__扒一扒单片机串口IAP原理
    计算机网络知识整理笔记
    分享一个Redis自带的压测工具:redis-benchmark
    大规模分布式链路分析计算在字节跳动的实践
    第四章 数据库安全性
    5个高质量的自用原型设计工具分享!
  • 原文地址:https://blog.csdn.net/weixin_43432438/article/details/128063647