Linux shell中如何获取当前目录

Linux shell中获取当前目录

当前目录

每当你在终端进行操作时,你都会有一个当前工作目录。

使用pwd来判定当前目录在文件系统内的确切位置。

[root@localhost ~]# pwd
/root

在shell中也可以使用pwd来获取当前目录,并赋值给变量。
test.sh

#!/bin/bash
CRTDIR=$(pwd)
echo $CRTDIR

在这里插入图片描述

添加执行权限
chmod +x test.sh

运行test.sh
在这里插入图片描述

工作目录

获取当前执行的脚本文件的父目录。

#!/bin/bash
workdir=$(cd $(dirname $0); pwd)
echo $workdir

在这里插入图片描述

复杂点的工作目录获取

#!/bin/bash
PRG="$0"
while [ -h "$PRG" ] ; dols=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fi
done
PRGDIR=$(cd $(dirname $PRG); pwd)
echo $PRGDIR

在这里插入图片描述

shell脚本常用语法——获得当前目录

1.获取shell脚本所在的绝对路径

CURRENT_DIR=$(cd $(dirname $0); pwd)

或者

CURRENT_DIR=$(cd `dirname $0`; pwd)

执行步骤解析:

  • dirname $0: 取得当前执行的脚本文件所在的目录;
  • cd: 进入当前工作目录;
  • pwd: 显示当前工作目录;

将当前工作目录输出给变量CURRENT_DIR

2.获取shell脚本所在目录的父级目录的绝对路径

由于能1 获得shell脚本所在的绝对路径,那么同理,就可以获得脚本所在目录的父级目录的绝对路径。

PARENT_DIR=$(cd $(dirname $0);cd ..; pwd)

只是在pwd命令之前添加了cd ..到父级目录。

注意:

  • $()`` 作用一样,用于shell命令的执行。
  • dirname: 显示最后一个结点前的路径;相对的,basename: 显示最后一个结点的名称。
  • $0: 脚本的路径名称,包含脚本本身的名称。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/504739.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[linux] linux 常见信号以及使用信号时注意事项

信号是一种进程间通信的方式,进程间通信的方式还包括共享内存,socket,管道,消息队列。信号与其它方式是有区别的,其它通信方式很灵活,可以详细定义自己的消息内容;而信号没有这么灵活&#xff0…

7款炫酷的前端动画特效分享(二)(附效果图及在线演示)

分享7款好玩的前端动画特效 其中有CSS动画、SVG动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 jQuery拉开帷幕特效 基于jQuery实现的帷幕特效 点击右侧拉条 可以实现帷幕的收起也展开 非常的炫酷…

Doris实战——金融壹账通指标中台的应用实践

目录 前言 一、业务痛点 二、早期架构挑战 三、架构升级 四、一体化指标数据平台 4.1 构建指标体系 4.2 构建指标平台功能 五、Doris指标应用实践 六、未来规划 原文大佬的这篇指标中台的应用实践有借鉴意义,这里摘抄下来用作学习和知识沉淀。 前言 在搭建…

第四十七回 一丈青单捉王矮虎 宋公明二打祝家庄-强大而灵活的python装饰器

四面全是埋伏,宋江和众人一直绕圈跑不出去。正在慌乱之时,石秀及时赶到,教大家碰到白杨树就转弯走。走了一段时间,发现围的人越来越多,原来祝家庄以灯笼指挥号令。花荣一箭射下来红灯龙,伏兵自己就乱起来了…

【DAY07 软考中级备考笔记】数据结构:线性结构,数组矩阵和广义表

数据结构:线性结构,数组矩阵和广义表 3月2日 – 天气:晴 1. 线性表的定义和存储方式 > 这一部分只需要掌握下面的两点即可: > > * 采用顺序存储和链式存储的特点 > * 单链表的插入和删除操作 2. 栈和队列 > 这里需…

Godot自定义控件样式语法解析

前言 本篇原始文章写于2023年8月7日,存储在我的语雀文档中。但是语雀分享有诸多不便,为了让更多Godoter更轻松的搜到和看到,就转过来了。 这个项目我上传了Github,后续会贴上链接。 概述 Godot控件体系存在的问题之一就是样式无…

无人值守,24小时水质在线检测系统,助力信息化平台建设

水质在线监测系统主要由在线自动检测系统、通信网络和监控中心三部分组成,可以在无人值守的情况下自动完成水样的采集、水质分析、数据的采集和通信传输。 主要功能:监测水厂出口,输水管线和终端的水质情况。具体要求:地图显示。…

elegentbook模板不生成目录的解决方法

这里只有目录两个字、却没有生成目录 在json里面修改 "latex-workshop.latex.autoClean.run": "onBuilt",把onBuilt改为onFailed即可 "latex-workshop.latex.autoClean.run": "onFailed",

正压式采样器——气体采样器

不管路有多远,只要你不停步,总会在你的脚下。无论志向有多高,只要你不放弃,总会在你的胸怀。不要等待机会,而是创造机会。只有走出来的美丽,没有等出来的辉煌。 正压采样器的用途: 该正压采样器…

php连接hdfs初步探索

一、phdfs拓展 结果:暂时舍弃 安装此拓展时,无法make成功,因为缺少hdfs.n文件。 换了其他版本的拓展包,并编译都没有找到此文件。 后搜到官网的相关资料,此hdfs.h的文件路径的地址是$HADOOP_HDFS_HOME/include/hdfs…

【计算机网络_应用层】协议定制序列化反序列化

文章目录 1. TCP协议的通信流程2. 应用层协议定制3. 通过“网络计算器”的实现来实现应用层协议定制和序列化3.1 protocol3.2 序列化和反序列化3.2.1 手写序列化和反序列化3.2.2 使用Json库 3.3 数据包读取3.4 服务端设计3.5 最后的源代码和运行结果 1. TCP协议的通信流程 在之…

安装OPC报1603错误的处理

因为本电脑调试过OPC Client软件,设置过DCOM,待安装OPC Server时报1603错误: 研究颇久,后来发现修改一下dcom配置就好了: 运行 dcomcnfg,将“我的电脑”属性修改如下: