当前位置: 首页 > wzjs >正文

天津实用网站建设平台柳州房地产网站建设

天津实用网站建设平台,柳州房地产网站建设,公司建设网站注意事项,合肥公司注册目录 需求描述 方法一:使用 dirname 和 readlink 命令 方法二:使用 BASH_SOURCE 变量 方法三:仅使用纯 Bash 实现 需求描述 工作中经常有这样情况,需要在脚本内部获取该脚本自己所在目录的绝对路径。 假如有一个脚本/a/b/c/…

目录

需求描述

方法一:使用 dirname 和 readlink 命令

方法二:使用 BASH_SOURCE 变量

方法三:仅使用纯 Bash 实现


需求描述

工作中经常有这样情况,需要在脚本内部获取该脚本自己所在目录的绝对路径。

假如有一个脚本/a/b/c/work.sh。如何在work.sh内部获取work.sh所在目录的绝对路径,即获取到/a/b/c,或者/a/b/c/也可以。要求无论在哪个目录执行work.sh都能达到目的。

能适用于以下情形:

情形1:在/a/b/c目录下执行 bash work.sh或者bash ./work.sh 或者 bash /a/b/c/work.sh

情形2:在/a目录执行bash b/c/work.sh或者./b/c/work.sh 或者 bash /a/b/c/work.sh

情形3:在/a/b/c/d/目录下执行 bash ../work.sh 或者 bash /a/b/c/work.sh

以下是几种常见且有效的实现方式。

方法一:使用 dirname 和 readlink 命令

dirname 命令用于返回路径中的目录部分,readlink -f 用于获取文件的绝对路径。

#!/bin/bash
# 获取脚本的绝对路径
script_path=$(readlink -f "$0")
echo "$script_path"
# 获取脚本所在目录的绝对路径
script_dir=$(dirname "$script_path")
echo "$script_dir"

在上述代码中,$0 代表当前正在执行的脚本名。readlink -f "$0" 会将脚本的相对路径转换为绝对路径,然后使用 dirname 命令提取出该绝对路径中的目录部分。

方法二:使用 BASH_SOURCE 变量

BASH_SOURCE 是一个数组变量,BASH_SOURCE[0] 存储着当前执行脚本的文件名。结合 dirname 和 realpath 命令可以获取脚本所在目录的绝对路径。

#!/bin/bash
# 获取脚本的绝对路径
script_path=$(realpath "${BASH_SOURCE[0]}")
echo $script_path
# 获取脚本所在目录的绝对路径
script_dir=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
echo "$script_dir"

方法三:仅使用纯 Bash 实现

如果系统不支持 readlink 或 realpath 命令,也可以使用纯 Bash 代码来实现:

#!/bin/bash
# 获取脚本的相对路径
relative_dir=$(dirname "$0")
# 转换为绝对路径
pushd "$relative_dir" > /dev/null
script_dir=$(pwd)
popd > /dev/null
echo "$script_dir"

在这个实现中,dirname "$0" 先获取脚本的相对目录,然后使用 pushd 命令进入该目录,pwd 命令获取当前工作目录的绝对路径,最后使用 popd 命令返回到原来的目录。> /dev/null 用于抑制命令的输出信息。

一个等价的做法是:

script_dir=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)

以上三种方法都能确保无论在哪个目录下执行 work.sh 脚本,都可以准确获取到该脚本所在目录的绝对路径。

http://www.dtcms.com/wzjs/807310.html

相关文章:

  • 机械设备如何做网站做英文网站賺钱
  • 网站制作什么品牌好西安建站公司模板
  • 网站备案服务内容灌南县规划局网站理想家园规划建设
  • 兰州西固区公司网站建设百度站长管理平台
  • 建设网站的方案贴吧 wordpress
  • 免费网站制作新闻wordpress手机分享插件
  • 百度改网站描述东莞专业网站建设公司
  • iis打开网站变成下载唐山网站排名提升
  • 黑龙江网站设计蓬莱做网站那家好
  • 做网站需要的导航手机与pc的网站开发
  • wordpress博客站模板外贸网络推广是什么
  • php wap网站源码wordpress首页怎么美化
  • 小米手机如何做游戏视频网站夺宝网站还可以做吗
  • 商城网站开发报价wordpress官网案例
  • 北京网站建设亿玛酷出名5项目外包平台接活
  • 网站优化建设兰州做搜狗pc网站优化
  • 中国建设银行数据管理部网站wordpress设置静态之后文章打不开
  • 如何选择郑州网站建设做物流网站有哪些内容
  • 运城市网站建设网站建设工作小组分工
  • 郴州网站设计公司设备建设网站
  • qq网站登录网址北京网站高端定制
  • 不写编程可以做网站建设网校网站模板
  • 网站优化意见免流服务器
  • 好医生网站怎么做不了题目了wordpress多域名配置
  • 成品网站货源1688免费网站建设设计的流程
  • 装饰公司网站建设效果做网站的费用计入什么科目
  • 网站文字变白色代码怎么做软件设计师好考吗
  • 阿里巴巴的网站应该怎么做网站文章页图片不显示图片
  • 蛋糕网站建设末班网页图片设置
  • 做这个网站多少钱wordpress 精美主题