• Linux扩展篇之Shell编程三(函数)


    1. 系统函数

    1.1 basename

    基本语法:basename [string / pathname] [suffix]

    • 功能描述:basename 命令会删掉所有的前 缀包括最后一个(‘/’)字符,然后将字符串显示出来。

    basename 可以理解为取路径里的文件名称

    选项:

    • suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。

    案例实操

    在这里插入图片描述

    1.2 dirname

    基本语法: dirname 文件绝对路径

    • 功能描述:从给定的包含绝对路径的文件名中去除文件名 (非目录的部分),然后返回剩下的路径(目录的部分)

    dirname 可以理解为取文件路径的绝对路径名称

    案例实操:

    • 修改hello.sh获取路径的方式
    #!/bin/bash
    echo '==========$n=========='
    echo "hello world!"
    cd $(dirname $0)
    echo scripts path:$(cd $(dirname $0);pwd)
    echo scrippt name: $(basename $0 .sh)  #其中$(),这叫做命令替换
    echo 1st paramater: $1
    echo 2nd paramater: $2
    echo '=========$n==========='
    echo paramater number:$#
    echo '=========$*==========='
    echo $*
    echo '=========$n==========='
    echo $@
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述在这里插入图片描述

    2. 自定义函数

    基本语法

    [ function ] funname[()] 
    { 
    	Action; 
    	[return int;] 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    经验技巧

    1. 必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一 样先编译。
    2. 函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将 以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)

    案例实操

    修改add.sh脚本

    #!/bin/bash
    function add(){
            sum=$[$1 + $2]
            echo sum=$sum
    }
    read -p "请输入第一个整数:" a
    read -p "请输入第二个参数:" b
    add $a $b
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    #!/bin/bash
    function add(){
            sum=$[$1 + $2]
            echo $sum
    }
    read -p "请输入第一个整数:" a
    read -p "请输入第二个参数:" b
    s=$(add $a $b)
    echo "和:"$sum
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    底层驱动day8作业
    【计算机考研】【英语一】必备词组
    <C++>模板
    导数大题练习
    Codewhisperer 使用评价
    简明Python教程(面向对象)
    使用Golang实现HTTP代理突破IP访问限制
    Electron[2] Electron使用准备
    [附源码]Python计算机毕业设计Django图书馆出版物预订系统
    聊天机器人框架Rasa资源整理
  • 原文地址:https://blog.csdn.net/qq_40926887/article/details/126081314