GVKun编程网logo

linux shell readlink 获取当前脚本文件绝对路径(shell获取当前脚本的绝对路径)

2

关于linuxshellreadlink获取当前脚本文件绝对路径和shell获取当前脚本的绝对路径的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bashshell:获取当前脚本的绝对路径

关于linux shell readlink 获取当前脚本文件绝对路径shell获取当前脚本的绝对路径的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash shell:获取当前脚本的绝对路径(pwd/readlink)、bash shell获取当前脚本的绝对路径(pwd/readlink)、Linux - 常用 shell 简介及 shell 基本操作、Linux =有没有类似“Java Shell”而不是其他Linux shell?等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

linux shell readlink 获取当前脚本文件绝对路径(shell获取当前脚本的绝对路径)

当前脚本绝对路径:readlink -m $0

readlink命令简介

Linux中的readlink命令用于打印解析的符号链接或规范文件名。用简单的话来说,只要我们有一个符号链接,我们就想知道它代表什么路径。然后,在这种情况下,将使用readlink命令显示符号链接的实际路径。

readlink [选项] ...文件...

示例:它将打印通过命令传递的打印解析符号链接或符号链接的规范文件名,如下所示。

说明:如您在上面的示例中看到的,借助readlink命令,我们具有一个带有办公桌名称的符号链接,我们将能够识别其实际路径。

readlink -f:通过递归跟随给定名称的每个组件中的每个符号链接,此选项可以规范化;除最后一个组件外,所有组件都必须存在。

readlink -f desk1

readlink -e:通过递归跟随给定名称的每个组件中的每个符号链接,此选项将规范化,所有组件必须存在。

readlink -e desk

说明:此选项类似于-f选项,-f-e选项之间的唯一区别是-e,所有组件都必须存在,而-f,最后一个组件必须存在。

readlink -m:此选项可以通过对给定名称的每个组件中的每个符号链接进行递归跟踪来规范化,而无需组件存在。

readlink -m desk3

readlink -n:此选项将不输出结尾定界符。

readlink -n desk4

readlink -q:此选项将在安静模式下执行。

readlink -q desk

说明:在此选项的帮助下,用户可以读取每个组件中的符号链接,并且不会在控制台上显示任何错误。

readlink -s:此选项将禁止显示大多数错误消息。

readlink -s desk5

readlink -v:此选项将报告错误消息(如果有)。

readlink -v desk6

readlink -z:此选项将以NUL(而不是换行符)结尾每条输出行。

readlink -z desk2

readlink –help:此选项将显示此帮助并退出。

readlink --help

readlink –version:此选项将显示版本信息并退出。

readlink --version


 

bash shell:获取当前脚本的绝对路径(pwd/readlink)

bash shell:获取当前脚本的绝对路径(pwd/readlink)

有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname实现。 
我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是:

输出已经去除了尾部的”/”字符部分的名称;如果名称中不包含”/”, 
则显示”.”(表示当前目录)。

下面是dirname的命令行说明: 
这里写图片描述 
从上面的描述可知道,直接从dirname返回的未必是绝对路径,取决于提供给dirname的参数是否是绝对路径。 
所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径

SHELL_FOLDER=$(dirname "$0")
  • 1

需要用cd和pwd命令配合获取脚本所在绝对路径,正确的写法是这样的,

SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
  • 1

如果你觉得上面的写法比较麻烦,还有一个方式获取脚本的绝对路径,就是借助readlink命令,下面是readlink的命令行说明: 
这里写图片描述

所以用readlink命令我们可以直接获取$0参数的全路径文件名,然后再用dirname获取其所在的绝对路径:

SHELL_FOLDER=$(dirname $(readlink -f "$0"))

bash shell获取当前脚本的绝对路径(pwd/readlink)

bash shell获取当前脚本的绝对路径(pwd/readlink)

有时候,我们需要知道当前执行的输出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

到此这篇关于bash shell获取当前脚本的绝对路径(pwd/readlink)的文章就介绍到这了,更多相关bash shell获取当前脚本绝对路径内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • SHELL脚本read命令的具体用法
  • 一条命令让你明白shell中read命令的常用参数
  • linux shell在while中用read从键盘输入的实现
  • Shell脚本read用法实现

Linux - 常用 shell 简介及 shell 基本操作

Linux - 常用 shell 简介及 shell 基本操作

1. 查询 shell 环境变量,切换 shell 种类

​​

表明目前使用的 shell 种类是 bash。

要想改变 shell 种类,在终端输入想要运行的 shell 名称即可。在切换 shell 种类的过程中,可能会操作失败,这是因为 ubuntu 没有自带安装想要切换的 shell 种类。

​​

2.shell 命令的基本格式

shell 的命令格式如下:

command -options [argument]

command:shell 命令的名称。

-options: 选项,同一个命令可能有很多不同的选项,用来完成不同的具体功能。

[argument]: 参数,作为 shell 命令的输入,有的 shell 命令可以没有参数,或者不带参数运行。

例如:

​​

ls  //查看当前目录下的文件及文件夹
ls -l  //查看当前目录下的文件及文件夹的详细信息
ls -l /home  //查看/home目录下的文件及文件夹的详细信息

 

3.shell 的常用特殊符号

(1)“*”

    是一个通用符号,可以表示任意一个字符(包括空字符)或多个字符组成的字符串。例如

ls -l /bin/e*  //查看/bin/目录下的所有以e开头的文件及文件夹的详细信息

 

​​

(2)“?”

    功能类似于 “*” 符号,但是只能表示单个字符,不能表示由多个字符组成的字符串。例如

ls -l /bin/e?  //查看/bin/目录下的所有以e开头的长度为2的文件及文件夹的详细信息

 

​​

(3)“[ ]”

指定范围,用来指定被显示的内容的范围。例如,在 /home/leon 目录下新建一个文件夹,名为 test, 在 test 文件夹下新建 5 个文件夹,名为 a、b、c、d、e。

cd /home/leon/test  //进入到该目录下cd /home/leon/test 
ls [a-c]  //仅查看名为a~c的文件及文件夹

 

​​​​

(4)“!”

      排除符号,用来指定被屏蔽显示内容的部分。需要与 “[]” 符号联合使用。例如

ls [a-c]  //仅查看名为a~c的文件及文件夹

 

​​

(5)“;”

分割符号,用于在一行输入多个命令时,分隔各个命令。例如

ls;ls -l  //查看当前目录下的文件及文件夹,然后查看他们的详细信息

(6)“`”

命令替代符,这个符号总是成对出现,他们包含的内容在 shell 中表示一条命令,并且会被执行。例如

echo `ls -l`  //将命令“ls -l”的结果显示出来
echo ''ls -l''  //这里是单引号,表示显示“ls-l”这个字符串

(7)“#”

注释符号,以 “#” 开头的一行被当作是注释处理,不会被执行。

ls -l  //查看当前目录下的文件和文件夹的详细信息
# ls -l  //添加上“#”号,该命令被当作注释,不会被执行

4. 自动补全功能

输入 “who”, 然后按住 TAB 键,系统将发出警报声,此时可以继续输入,也可以在此按下 TAB 键,系统将列出说有 who 开头的命令。


5. 按方向键上和下可以选择曾经输入过的历史命令。

6.shell 别名机制

需要用到 “alias” 命令

mynet  //输入mynet,Linux中并无此命令
ifconfig  //ifconfig命令可以查看网络情况
alias mynet=ifconfig  //给ifconfig起个别名mynet
mynet  //mynet就可以生效了

Linux =有没有类似“Java Shell”而不是其他Linux shell?

Linux =有没有类似“Java Shell”而不是其他Linux shell?

我最了解的编程语言是 Java.目前,我必须编写相当多的“shell脚本”来自动化我的服务器.有没有像“Java Shell”这样的东西,所以我可以用Java编写shell脚本?

解决方法

你可以得到groovy并使用groovysh.我已经做了一些事情,但我发现perl或bash / sh对于管理脚本最有用.当您需要做的就是执行OS命令和搜索文本时,像Java这样的应用程序语言会增加很多开销.

今天关于linux shell readlink 获取当前脚本文件绝对路径shell获取当前脚本的绝对路径的介绍到此结束,谢谢您的阅读,有关bash shell:获取当前脚本的绝对路径(pwd/readlink)、bash shell获取当前脚本的绝对路径(pwd/readlink)、Linux - 常用 shell 简介及 shell 基本操作、Linux =有没有类似“Java Shell”而不是其他Linux shell?等更多相关知识的信息可以在本站进行查询。

本文标签: