如何在shell中切换到脚本目录?

发布于 2025-01-20 19:49:08 字数 372 浏览 0 评论 0 原文

我正在尝试运行一个位于Shell脚本目录中的Python脚本,但是我找不到如何在Shell脚本中动态更改目录,因此我可以可靠地执行它。

我看到的大多数解决方案都是使用bash中可用的功能,但是我只能使用shell,因为我使用 alpine ,并且不想安装bash。 shell脚本是这样的:

export FLASK_APP="./app.py"
export FLASK_RUN_HOST='0.0.0.0'
export FLASK_RUN_PORT=5000
flask run

app.py 在我脚本的同一目录中。

I am trying to run a python script that resides in the directory of my shell script, but I cannot find out how to dynamically change directory in the shell script, so I could execute it reliably.

Most solutions I've seen are using features available in bash, but I can only use shell since I am using alpine and do not want to install bash. The shell script is something like this:

export FLASK_APP="./app.py"
export FLASK_RUN_HOST='0.0.0.0'
export FLASK_RUN_PORT=5000
flask run

And app.py is in the same directory of my script.

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

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

发布评论

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

评论(1

迷乱花海 2025-01-27 19:49:08

您似乎正在运行使用 ash shell shell 默认:

注意:默认情况下,Alpine Linux使用Ash Shell


”这是从 Ash 改编的,此答案

my_dir="$( cd -- "$(dirname -- "$0")" && pwd )"
echo "I'm running in $my_dir"

它对我有用ubuntu的 dash ,它是 ash 的导数。

You seem to be running Alpine Linux which uses the ash shell by default:

Note: By default Alpine Linux uses the ash shell *

So try this, adapted to ash from the one-liner in this answer:

my_dir="$( cd -- "$(dirname -- "$0")" && pwd )"
echo "I'm running in $my_dir"

It works for me in Ubuntu's dash, which is a derivative of ash.

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