`
dylan.wu
  • 浏览: 135715 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在shell脚本运行时如何获取自己所在的目录

 
阅读更多

在shell脚本中有时需要用到相对路径,来减少子程序的路径配置,但是这样主程序还是需要知道自己所在的路径。有什么办法可以自动获取主程序所在的目录,而不用配置呢。总结了一下,运行脚本的方式有以下几种(假如主程序名为"test.sh")

1、./test.sh     or    sh test.sh

2、test.sh  (路径配置在了环境变量中)

3、../bin/test.sh   or sh ../bin/test.sh

4、/usr/local/bin/test.sh     or     sh /usr/local/bin/test.sh

 

总结一下其实就三种情况,一、使用相对路径。二、使用绝对路径。三、在环境变量的路径中搜索。而第三种情况最后实际会变成第二种情况(在centos下是这样的)。这样就好办了。代码如下

if [ $(echo $0 | grep '^/') ]; then
    path=$(dirname $0)
else
    path=$(pwd)/$(dirname $0)
fi
echo $path

 虽然在相对路径中,打印出来有点丑陋,但至少是可以工作了。

 

 

分享到:
评论

相关推荐

    shell脚本大全

    在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列...记得实践是掌握技术的关键,尝试编写并运行脚本,不断调整优化,你会发现Shell脚本的魅力所在。

    Shell中获取脚本所在目录绝对路径的方法

    在本篇文章中,我们将详细介绍如何在Shell脚本中获取脚本所在目录的绝对路径。 ### 实现方法 #### 方法一:使用`dirname`和`realpath` 最常用的方法是结合使用`dirname`和`realpath`两个命令。`dirname`用于提取...

    Shell脚本编程详解

    Shell脚本编程是一种在Linux和类Unix操作系统中广泛使用的脚本编写技术,它允许用户创建自动化任务,执行一系列命令和操作。在这个主题中,我们将深入探讨Shell脚本编程的几个关键方面。 首先,理解`Shell命令行的...

    面向 dba 的 linux shell 脚本简介

    1. **维护现有的脚本**:在接手新的系统或项目时,往往需要理解并维护已经存在的Shell脚本。 2. **自动设置系统**:在安装Oracle软件之前,可以通过脚本来检查操作系统环境,确保满足安装的先决条件,同时创建必要的...

    unix shell脚本编程

    执行Shell脚本需要通过Shell程序来解释并运行其中的命令。Unix中最常用的Shell有Bourne Shell(/bin/sh)和C Shell(/bin/csh)。 **将文本文件设置为可执行的Shell脚本:** 要使一个文本文件成为可执行的Shell脚本...

    shell脚本编写基础

    在Linux测试过程中,编写Shell脚本是十分常见的,脚本的名称可以自由设定,无需特定的后缀名,如`abc`或`smartzip`等,只需在运行时使用`./smartzip`即可执行。 ### 1.1 语法基本介绍 **1.1.1 开头** 每个Shell...

    shell脚本的常用格式及写法

    Shell脚本,全称为Bash Shell脚本,是Linux或Unix系统中的一种程序设计语言,它基于Shell命令行解释器,允许用户通过编写脚本来自动化一系列的系统操作。Shell脚本的编写对于日常的系统管理和自动化任务至关重要。...

    Linux_shell脚本大全文档

    在使用Shell脚本时,还需要注意路径问题。相对路径和绝对路径是两种基本的文件定位方式。相对路径是相对于当前工作目录的路径,而绝对路径从根目录(/)开始。 最后,Shell脚本的调试是一个重要环节。可以通过添加`...

    shell脚本学习指南pdf

    Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本语言的原理,掌握编写高效...

    Shell脚本编程.pdf

    - **位置参数**:它们是脚本运行时传递的参数,如`$1`表示第一个参数,`$2`表示第二个参数,以此类推。`$0`表示脚本本身的名称。 - **内部参数**:包括特殊变量,如`$?`表示上一个命令的退出状态,`$$`表示当前...

    Shell脚本编程详解-吐血共享

    在创建Shell脚本时,应遵循一些基本的规范和最佳实践,比如,脚本的第一行应当指明脚本使用的Shell解释器,如#!/bin/bash。这种约定告诉系统用哪个解释器来执行脚本。 脚本中还可以使用循环结构和条件结构语句,这...

    100个shell脚本【持续更新】.pdf

    4. 变量的读取和设置:Shell脚本中可以使用read命令来从用户那里获取输入,将输入赋值给变量进行后续处理。例如,在打印图形的脚本中使用read命令读取用户输入的长度值。 5. 文件的读取和写入:在Shell脚本中可以...

    使用Ubuntu 22.04.2 LTS编写shell脚本(上)

    此外,Shell脚本允许在运行时接收命令行参数,这些参数通过位置或`$1`, `$2`等特殊变量访问。例如,如果你的脚本需要接收一个名字作为参数,可以这样做: ```bash #!/bin/bash echo "你好,"$1 ``` 运行时输入`./...

    Shell 脚本编程最佳实践.doc

    如果在运行时没有指定解释器,系统会根据shebang选择。 2. **代码注释**:注释是必不可少的,尤其是对于复杂或非直观的命令。它们应包含脚本用途、参数说明、注意事项、作者信息、编写时间及版权信息。每个函数前也...

    shell脚本入门

    在本文中,我们将深入探讨Shell脚本的基础知识,帮助初学者快速入门。 一、Shell概述 Shell是操作系统提供的一种命令解释器,它为用户提供与系统交互的界面。在Linux或Unix系统中,常见的Shell有Bash(Bourne-Again...

    shell 脚本 如何双击运行脚本 脚本双击闪退调试 脚本中创建脚本

    在一个Shell脚本中创建新的脚本文件,可以利用`echo`和`cat`命令结合输入重定向。例如,可以创建一个名为`all.sh`的脚本,接收一个参数如`t1.sh`,并在其中生成新的脚本文件。如果需要创建多个脚本,可以使用`for`...

    编写Shell脚本

    在IT行业中,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,尤其对于系统管理员和开发者而言,熟练掌握Shell脚本编写技巧至关重要。标题“编写Shell脚本”表明我们要深入探讨这一主题,而描述则强调了Shell...

Global site tag (gtag.js) - Google Analytics