码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • shell脚本知识点梳理


    一、shell变量

    1、只能使用数字、字母和下划线,且不能以数字开头

    2、变量赋值是通过  =  进行赋值,在变量、等号和值之间不能有空格

     3、使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

    your_name="qinjx"
    echo ${your_name}

    4、单引号里的任何字符都会原样输出,不解析变量。

        双引号("")会解析变量,反引号(``)是执行引用命令的执行结果

     5、获取字符串长度、截取字符串

    name="runoob is a great site"

    echo ${#name}   # 输出 22
    echo ${#name[0]} # 输出22

    echo ${name:1:4} # 输出 unoo

     二、Shell 传递参数

     我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,其中 $0 为执行的文件名(包含文件路径)

    $#传递到脚本的参数个数
    $$脚本运行的当前进程ID号
    $?

    脚本退出的状态

    $0脚本执行的文件名称

    例子:

    运行结果:

    三、shell基本运算符 

    1、可以通过expr完成表达式的求值操作,表达式和运算符之间要有空格,

    2、val=`expr 2 \* 3`  乘号(*)前边必须加反斜杠(\)才能实现乘法运算

    3、条件表达式要放在方括号之间,并且要有空格,例如[$a==$b]是错误的

    四、流程控制

    1、if else-if else

    if else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt。

    如果使用 ((...)) 作为判断语句,大于和小于可以直接使用 > 和 <。

    1. #!/bin/bash
    2. if [ $# -lt 1 ]
    3. then
    4. echo "not fount param"
    5. exit 100
    6. fi
    7. flag=$1
    8. if [ $flag -eq 1 ]
    9. then
    10. echo "one"
    11. fi
    12. if (( $flag < 2 ))
    13. then
    14. echo "1"
    15. fi
    16. ~

     

    2、for循环

    1. #!/bin/bash
    2. for str in 1 2 2 3
    3. do
    4. echo ${str}
    5. done

    运行结果:

     3.while循环

    1. #!/bin/bash
    2. i=1
    3. while(( $i<=5 ))
    4. do
    5. echo ${i}
    6. let "i++"
    7. done
    8. ~

    结果:

     五、shell文件包含

    shell文件包含的语法如下:

    . filename 注意点号(.)和文件名中间有一个空格

     

  • 相关阅读:
    仓库太大,clone 后,git pull 老分支成功,最新分支失败
    用于多目标检测的自监督学习(SELF-SUPER VISED LEARNING FOR MULTIPLE OBJECTDETECTION)
    Matlab数字图像处理 03 空域滤波(滤波器、线性滤波器、统计排序滤波器、图像平滑、锐化)
    Robotaxi商业化迎来重要拐点,Momenta如何破局“下半场”?
    2011年09月06日 Go生态洞察:Go语言的反射法则
    前端批量下载文件(干货)
    java版本企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发
    为什么要引入线程?
    python:网络安全攻击与防御的工具(附零基础学习资料)
    linux netlink实现机制:通信 - 驱动与应用层数据交互(三)
  • 原文地址:https://blog.csdn.net/libaowen609/article/details/126292447
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号