網站首頁 編程語言 正文
有時候,我們需要知道當前執行的輸出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-03-16 Redis在項目中的使用(JedisPool方式)_Redis
- 2022-08-22 PyCharm安裝庫numpy失敗問題的詳細解決方法_python
- 2023-04-26 Python實現計算函數或程序執行時間_python
- 2022-12-01 C++中單鏈表操作的示例代碼_C 語言
- 2022-03-24 C++數組和指針的區別與聯系_C 語言
- 2022-04-25 django數據庫遷移migration實現_python
- 2022-03-31 C語言中冒泡排序算法詳解_C 語言
- 2023-03-23 詳解python?ThreadPoolExecutor異常捕獲_python
- 最近更新
-
- 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同步修改后的遠程分支