所以,我真的很喜欢 Fish - 但我需要一些脚本方面的帮助。尤其是找到正在运行的脚本的路径。
这是 BASH 从内部获取 Bash 脚本的源目录的解决方案
谁能帮我找到鱼的等价物?
status --current-filename
将输出当前执行脚本的路径。
有关 status 命令的更多信息,您可以运行man status
或查看位于http://fishshell.com/docs/current/commands.html#status的文档
在鱼壳里,
set DIR (cd (dirname (status -f)); and pwd)
相当于 BASH one liner
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
注意:鱼壳将cd
进入该目录并留在那里。Bash 会cd
,但它仍然包含在子命令中。
要获取脚本的完整路径,请使用status --current-filename
或
set FILE (status --current-filename)
声明一个变量。
要获取脚本所在目录的完整路径,请使用dirname (status --current-filename)
或set DIR (dirname (status --current-filename))
声明一个变量。
这个问题的等价物如下:
set DIR (dirname (status --current-filename))
是等价的