关于bash获取路径问题---pwd和 dirname区别
来源:互联网 发布:飓风打印软件 编辑:程序博客网 时间:2024/05/20 22:38
本文用到的demo内容如下,建立test.sh脚本,将脚本改成可执行状态后运行:
</pre><pre name="code" class="csharp">#!/bin/bashecho `pwd`var=$(dirname $0)echo $varcd dirname1echo $varecho `pwd`exit~
一、pwd和dirname
1、pwd返回的是当前目录,“print name of current/working directory”,但并不一定是脚本存放的目录,如下所示,当在~/c-example路径下执行
dirname1/dirname2/test.sh
pwd得到结果为
<pre name="code" class="csharp">/home/maria/c-example
并不是脚本所在的路径
maria@maria:~/c-example/dirname1/dirname2$ lstest.shmaria@maria:~/c-example/dirname1/dirname2$ cd ../..maria@maria:~/c-example$ dirname1/dirname2/test.sh /home/maria/c-exampledirname1/dirname2dirname1/dirname2/home/maria/c-example/dirname1
2、dirname $0在命令行状态下返回" . ",而在脚本中返回的是脚本所在的路径,且是脚本所在路径相对于命令执行时的路径,如下当在~/c-example路径下执行
dirname1/dirname2/test.sh
得到dirname $0结果为
<pre name="code" class="csharp"><span style="white-space:pre"></span>dirname1/dirname2
是test.sh相对于命令执行时的相对路径
3、二者的区别可由如上示例看到:pwd会随着cd等指令而变化,但最开始由dirname $0得到的相对路径是一个固定参数。
二、关于“” ‘’ ``的区别(摘自http://blog.163.com/wb_zhaoyuwei/blog/static/183075439201181553840490/)
【`】,学名叫“倒引号”, 如果被“倒引号”括起来, 表示里面需要执行的是命令。
比如 `dirname $0`, 就表示需要执行 dirname $0 这个命令
【“”】 , 被双引号括起来的内容, 里面 出现 $ (美元号: 表示取变量名) `(倒引号: 表示执行命令) \(转义号: 表示转义), 其余的才表示字符串。
【’‘】, 被单引号括起来的内容, 里面所有的都表示串, 包括上面所说的 三个特殊字符。
0 0
- 关于bash获取路径问题---pwd和 dirname区别
- ruby中获取当前脚本文件的路径(Dir.pwd 和 _FILE_ 的区别)
- shell脚本-路径处理$(cd `dirname $0`; pwd)
- Python中获取路径os.getcwd()和os.path.dirname(os.path.realpath(__file__))的区别和对比
- Python中获取路径os.getcwd()和os.path.dirname(os.path.realpath(__file__))的区别和对比
- pwd VS dirname $0
- 强悍的命令行 —— basename 去掉路径和扩展名 dirname 获取路径
- bash shell:获取当前脚本的绝对路径(pwd/readlink)
- bash脚本使用相对目录的问题dirname
- 关于获取webapp路径问题
- $ cd `dirname $0` 和PWD%/* shell变量的一些特殊用法
- getcwd和dirname(__FILE__)的区别
- dirname(__FILE__)和$_SERVER['DOCUMENT_ROOT']的区别
- getcwd()和dirname(__FILE__)的区别
- php --- dirname(__FILE__) 获取网站所在目录全路径
- php --- dirname(__FILE__) 获取网站所在目录全路径
- 获取网站的全路径跟目录 -- dirname(__FILE__)
- dirname(__FILE__) 获取当前php文件的完整路径
- C/C++学习笔记21:句柄与指针
- Hibernate学习-------------Log4j日志环境的搭建
- 堆排序
- sdut OJ2141---图论--用的数组+BFS
- 多页面跳转返回-注销登录
- 关于bash获取路径问题---pwd和 dirname区别
- UVA11237 Halloween treats (鸽巢原理)
- POJ3343&HDU2413Against Mammoths (二分匹配)经典
- C语言头文件包含和编写的几个基本规则
- 关于函数授权问题
- Java进阶之欧拉工程 第十七篇【用英文写出1到1000的所有数字需要多少个字母?】
- Tomcat7.0安装过程(无桌面快捷方式版的安装模式)
- HDU3001 Travelling 状压DP
- 设计模式——装饰模式(Decorator)