網站首頁 編程語言 正文
有時候,我們需要知道當前執行的輸出shell腳本的所在絕對路徑,可以用dirname實現。
我們知道 dirname 可以獲取一個文件所在的路徑,dirname的用處是:
輸出已經去除了尾部的”/”字符部分的名稱;如果名稱中不包含”/”,
則顯示”.”(表示當前目錄)。
下面是dirname的命令行說明:
從上面的描述可知道,直接從dirname返回的未必是絕對路徑,取決于提供給dirname的參數是否是絕對路徑。
所以下面這樣的代碼中SHELL_FOLDER
中不一定是絕對路徑
SHELL_FOLDER=$(dirname "$0")
需要用cd和pwd命令配合獲取腳本所在絕對路徑,正確的寫法是這樣的,
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
如果你覺得上面的寫法比較麻煩,還有一個方式獲取腳本的絕對路徑,就是借助readlink命令,下面是readlink的命令行說明:
所以用readlink命令我們可以直接獲取$0參數的全路徑文件名,然后再用dirname獲取其所在的絕對路徑:
SHELL_FOLDER=$(dirname $(readlink -f "$0"))
參考:
http://my.oschina.net/leejun2005/blog/150662
http://blog.csdn.net/zz198808/article/details/9319479
原文鏈接:https://blog.csdn.net/10km/article/details/51906821
相關推薦
- 2022-08-02 Python分支語句常見的使用方法_python
- 2022-07-02 Python使用struct庫的用法小結_python
- 2022-05-13 python list.sort()方法排序一探究竟
- 2023-09-18 子組件向父組件傳值的4種方法
- 2023-09-12 git 忽略掉不需要的文件
- 2022-09-25 Clion配置STM32開發環境printf函數打印浮點數快速設置方法
- 2023-10-16 Nginx啟動,重啟以及基本命令
- 2022-11-09 React特征學習Form數據管理示例詳解_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支