本文共 1551 字,大约阅读时间需要 5 分钟。
【`】,学名叫“倒引号”, 如果被“倒引号”括起来, 表示里面需要执行的是命令。
比如 `dirname $0`, 就表示需要执行 dirname $0 这个命令 【“”】 , 被双引号括起来的内容, 里面 出现 $ (美元号: 表示取变量名) `(倒引号: 表示执行命令) \(转义号: 表示转义), 其余的才表示字符串。 【’‘】, 被单引号括起来的内容, 里面所有的都表示串, 包括上面所说的 三个特殊字符。 在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
$0:当前Shell程序的文件名
dirname $0,获取当前Shell程序的路径 cd `dirname $0`,进入当前Shell程序的目录在/home/admin/test/下新建test.sh内容如下:
然后返回到/home/admin/执行
运行结果:
这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。
#########################################################################
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 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/