从不同位置运行 bash 脚本但引用脚本所在位置

发布于 2024-12-12 01:58:39 字数 400 浏览 0 评论 0原文

我不久前写了一个脚本,可以为不喜欢命令行的人在 Linux 中执行一些简单的安装过程,但似乎他们是从某个位置(例如 root)运行该脚本。所以我心里有一个解决方案,但试图找出如何引用文件所在的位置。

例子。 我在 /root/Server/Scripts/ 文件夹中有一个名为 Install.sh 的脚本,它通过使用以下内容引用自身:

SCRIPTSDIR=`pwd`

我遇到了问题

但是,当人们通过执行 sh Server/Scripts/Install.sh 从 root 运行此脚本时, 我可以使 SCRIPTS= 引用文件所在位置而不是运行文件的位置吗?

谢谢,请问您是否需要更多信息!

编辑:所有答案都很好,我的意思是放置我需要的绝对路径。

I wrote a script a while back that would do some simple install procedures in linux for people that don't like the command line, but it seems that they are running the script from a location (such as root). So I have a solution in mind but trying to find out how to reference where the file is located.

Example.
I have a script called Install.sh in a folder /root/Server/Scripts/ which references itself by using the following:

SCRIPTSDIR=`pwd`

But I have come into problems with people running this script from root by doing sh Server/Scripts/Install.sh

How could I make SCRIPTS= something that references where the file is located, not where it is being run from?

Thanks, ask if you need more info!

Edit: All answers were good, I meant to put I needed absolute path.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

星星的轨迹 2024-12-19 01:58:39

您可以通过以下方式获取 dir

dirname $0

如果使用相对路径调用脚本,则 dirname 还将返回相对路径。如果您出于某种原因想解决它,您可以这样做

readlink -f `dirname $0`

You can get dir with

dirname $0

If your script is called with relative path, dirname will also return relative path. If you want to resolve it for some reason, you can do

readlink -f `dirname $0`
π浅易 2024-12-19 01:58:39

您可以使用:

SCRIPTDIR=$(dirname $0)

如果您需要绝对路径,请尝试:

cd $(dirname $0)
SCRIPTDIR=$(pwd)
cd -

You can use:

SCRIPTDIR=$(dirname $0)

If you need absolute path, then try:

cd $(dirname $0)
SCRIPTDIR=$(pwd)
cd -
逆流 2024-12-19 01:58:39

你可以添加类似的内容:

fullscriptpath=$( dirname $0 )

You could add something like:

fullscriptpath=$( dirname $0 )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文