美文网首页
shell脚本小demo

shell脚本小demo

作者: 程序员小白成长记 | 来源:发表于2020-11-18 16:50 被阅读0次

    目录
    一、获取脚本的命令行参数
    二、获取脚本相较于当前执行命令路径的相对目录
    三、获得当前脚本所在位置的绝对路径

    一、获取脚本的命令行参数

    1. vi test.sh
      在/home/test目录下新建test.sh文件
    2. 在test.sh文件中添加如下代码
    #!/bin/bash
    
    echo $0
    echo $1
    
    1. 执行脚本
      sh test.sh 1
    2. 执行结果
      test.sh
      1
    3. 结果分析
      $0为脚本名称,$1为参数

    二、获取脚本相较于当前执行命令路径的相对目录

    1. vi test.sh
      在/home/test目录下新建test.sh文件
    2. 在test.sh文件中添加如下代码
    #!/bin/bash
    
    echo $(dirname $0)
    
    1. 执行脚本
      在test.sh的脚本所在位置执行sh test.sh
      sh test.sh
    2. 执行结果
      .
    3. 结果分析
      当前执行命令的路径相较于执行脚本的相对路径是.
      如果cd ..,(即cd test.sh脚本的上一级,为test),此时脚本相对于当前路径为test/test.sh,执行sh test.sh输入为test

    三、获得当前脚本所在位置的绝对路径

    1. vi test.sh
      在/home/test目录下新建test.sh文件
    2. 在test.sh文件中添加如下代码
    #!/bin/bash
    
    echo $(cd $(dirname $0); pwd)
    
    1. 执行脚本
      在test.sh的脚本所在路径执行sh test.sh
      sh test.sh
    2. 执行结果
      /home/test
    3. 结果分析
      test.sh脚本的目录为/home/test/test.sh,执行脚本结果为test.sh脚本的目录的绝对路径/home/test

    【注】其中;用于分隔单行中的多个语句,参考【1】

    shell内置命令

    1. dirname
    • 命令:echo $(dirname /home/test/test.sh/)
      结果:/home/test

    • 命令: echo $(dirname /home/test/test.sh/)
      结果:/home/test

    • 命令: echo $(dirname /home/test/)
      结果:/home

    • 命令: echo $(dirname /home/test)
      结果:/home

    1. basename

    参考:

    【1】Shell脚本中的分号使用

    相关文章

      网友评论

          本文标题:shell脚本小demo

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