重命名文件夹或将文件夹移动到新驱动器后,如何查找bash文件的文件路径?

时间:2019-05-10 14:23:00

标签: java bash jar sh

我已经为终端游戏制作了一个可执行的jar文件,可以通过在终端中键入java -jar name.jar来打开它。

然后,我在与jar文件相同的文件夹中制作了一个.sh文件,通过双击.sh将其打开。我问如何做here,那里的人告诉我在.sh中使用代码[1]。

这工作了一段时间,但是当我重命名文件夹时,我意识到如果将文件夹移动到笔式驱动器上,整个过程将停止工作,并且在终端机中会显示[2]。 那么,如何查找.sh和jar所在的文件夹的文件路径,而不管它在哪里,它的名称是什么以及它在哪个驱动器上?

抱歉,这是不可能的。

[1]:

#! /bin/bash
DIR=$(dirname "$0")
java -jar "$DIR/game.jar"

[2]:

Error: Unable to access jarfile /Volumes/Hard
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

此外,如果有任何重要意义,我正在使用MacOS Mojave 10.14.4。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用环境变量 $PWD 存储工作目录的完整路径,就像在这个例子中一样(在 5 分钟内完成,只是为了向您展示它是如何工作的):

#!/bin/bash
DIR=$PWD
gamePath='java -jar '$DIR'/game.jar'
echo $gamePath

无论我在哪里执行这个脚本,它都会显示工作目录,即使我更改了父目录的名称。让我告诉你:

enter image description here

您可以看到 $PWD 环境变量效果很好。 现在,我将目录名称从 TestFolder 更改为 TestFolderRenamed 并再次执行脚本:

enter image description here

因此,就您而言,请按以下方式更改代码:

#! /bin/bash
DIR=$PWD
java -jar "$DIR/game.jar"

它应该有效。