|
|
1
762
|
|
|
3
208
对于所有UNIX/OSX/Linux
猛击
注意:命令中使用双破折号(-)表示命令选项的结束,因此包含破折号或其他特殊字符的文件不会中断命令。
对于Linux、Mac和其他*BSD:
注:
否则,您可以尝试类似的操作(它将使用第一个现有工具):
注意:您需要
在bash中可以使用 Parameter Expansions 为了达到这个目的,比如:
或者,您可以在bash中定义以下函数:
此函数接受1个参数。如果参数已经有绝对路径,则按原样打印,否则按原样打印
相关:
另请参见: |
|
|
4
82
|
|
|
5
8
公认的答案适用于没有在其他地方进行符号链接的脚本,如into
这将把cd放入
symlink安全答案如下:
需要引号来支持可能包含空格的文件路径(不好的做法,但假设不是这样是不安全的) |
|
|
6
4
这个剧本似乎对我很有用:
|
|
|
7
2
获取脚本的真实路径
(这是我在这里提出的同一个问题的答案: Get the name of the directory where a script is executed |
|
|
8
2
我拿着这个就行了。
|
|
|
9
1
|
|
|
10
0
大多数答案要么不处理通过相对路径进行符号链接的文件,要么不是一行程序,要么不处理BSD(Mac)。解决这三个问题的方法是:
首先,将cd转换为bash对脚本目录的概念。然后readlink文件查看它是否是一个符号链接(相对的或其他的),如果是,cd到那个目录。如果没有,cd到当前目录(保持一行的东西是必要的)。然后通过
你可以加上
https://www.binaryphile.com/bash/2020/01/12/determining-the-location-of-your-script-in-bash.html |
|
11
-5
PWD是一个环境变量。 |
|
|
12
-7
如果您只需要打印当前的工作目录,那么您可以按照以下步骤操作。
然后执行脚本
|