博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux之shell倒引号,单引号,双引号,dirname,basename使用
阅读量:4047 次
发布时间:2019-05-24

本文共 1551 字,大约阅读时间需要 5 分钟。

【`】,学名叫“倒引号”, 如果被“倒引号”括起来,  表示里面需要执行的是命令。

比如 `dirname $0`,  就表示需要执行   dirname $0  这个命令
【“”】 , 被双引号括起来的内容, 里面 出现  $ (美元号: 表示取变量名)  `(倒引号: 表示执行命令)   \(转义号: 表示转义),   其余的才表示字符串。
【’‘】,  被单引号括起来的内容, 里面所有的都表示串, 包括上面所说的  三个特殊字符。
在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。

这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。

$0:当前Shell程序的文件名

dirname $0,获取当前Shell程序的路径
cd `dirname $0`,进入当前Shell程序的目录

在/home/admin/test/下新建test.sh内容如下:

  1. cd `dirname $0`
  2. echo `pwd`

然后返回到/home/admin/执行

  1. sh test/test.sh

运行结果:

  1. /home/admin/test

这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。

 

#########################################################################

dirname 命令读取指定路径名删除最后一个“/”()及其后面的字符,保留其他部分,并写结果到标准输出。如果最后一个“/”后无,dirname 命令使用倒数第二个“/”,并忽略其后的所有字符。dirname 命令在创建路径名的时候遵从以下规则:

如果 Path 参数为“//”(双),或者参数 Path 全部由组成,将其转换为单斜杠“/”。跳过步骤 2 到 7。 从指定路径删除尾部的“/”。 如果参数 Path 中没有剩下的“/”,则将路径转换成 . (点)。跳过步骤 4 到 7。 从中删除尾部的所有非斜杠。 如果剩下的路径为“//”(双),跳到步骤 6。 删除路径尾部的斜杠。 如果剩下的路径为空,则转换成单“/”。例如,输入:

dirname // 结果为 /()。输入:

dirname /a/b/ 结果为:/a。输入:

dirname a 结果为 . (点)。输入:

dirname a/b 结果为路径名 a。

命令 dirname 和  通常在 shell 替换使用,以指定一个与指定输入文件名略有差异的输出文件名。

##################################################################################

basename

basename 去除文件名的目录部分和后缀部分。返回一个字符串参数的基本文件名称。

语法:
basename NAME [SUFFIX]
basename OPTION

用法:

$ basename /home/me/desktop/test.txt

输出:

test.txt

可以指定suffix参数:

$ basename /home/me/desktop/test.txt .txt

输出:

test

如果指定 Suffix 参数,且它和字符串中的剩余的字符相同,则不修改此字符串:

$ basename /home/me/desktop/test.txt test.txt

输出:

test.txt

转载地址:http://wqwci.baihongyu.com/

你可能感兴趣的文章
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux phy驱动初始化2
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
2020年终总结
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>