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

How to change to script directory in shell?

我正在尝试 运行 驻留在我的 shell 脚本目录中的 python 脚本,但我无法找到如何动态更改 [=23] 中的目录=] 脚本,所以我可以可靠地执行它。

我见过的大多数解决方案都使用 bash 中可用的功能,但我只能使用 shell,因为我正在使用 alpine 并且不想安装 [=21] =]. shell 脚本是这样的:

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

并且app.py与我的脚本在同一个目录中。

您似乎是 运行 Alpine Linux,默认使用 ash shell:

Note: By default Alpine Linux uses the ash shell *

所以试试这个,从 this answer 中的 one-liner 改编到 ash

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

它在 Ubuntu 的 dash 中对我有用,它是 ash 的派生词。