Bash 用于克隆 Git 存储库和 运行 另一个 bash 脚本的脚本
Bash script to clone Git repo and run another bash script
我在使用 bash 脚本 PYTHONPATH
时遇到了一些问题,我正在尝试 运行。有 2 个 bash 脚本,clone_and_run.sh
在根文件夹中。这是克隆一个远程 Git 存储库,然后 运行 在该 Git 存储库的根目录中 运行 另一个 bash 脚本。
但是,在克隆存储库并执行 run.sh
之后,第二个脚本不能 运行 存储库中的 Python 脚本。但是如果我进入 repo root 并执行 run.sh
,它工作正常。
文件夹结构如下:
root
|----clone_and_run.sh
|----repo(after cloning from remote)
|----source
|----script.py
|----run.sh
clone_and_run.sh:
#!/usr/bin/env bash
set -e
PYTHONPATH=`pwd`./repo/:$PYTHONPATH
git clone https://---------(redacted)
bash ./repo/run.sh
#!/usr/bin/env bash
set -e
PYTHONPATH=`pwd`/../repo:$PYTHONPATH
python ./source/script.py
这是我在执行 clone_and_run.sh
时得到的错误:python: can't open file './source/script.py': [Errno 2] No such file or directory
克隆后,如果我进入repo
并直接执行run.sh
,它工作正常。我在两个脚本上尝试了不同的 PYTHONPATH
,没有成功。
您没有 cd 进入,run.sh
启动时的当前工作目录 .
不是脚本的目录,它是调用程序的 运行.
要查找调用脚本的目录,我常用的方法是readlink -f [=12=]
。
我在使用 bash 脚本 PYTHONPATH
时遇到了一些问题,我正在尝试 运行。有 2 个 bash 脚本,clone_and_run.sh
在根文件夹中。这是克隆一个远程 Git 存储库,然后 运行 在该 Git 存储库的根目录中 运行 另一个 bash 脚本。
但是,在克隆存储库并执行 run.sh
之后,第二个脚本不能 运行 存储库中的 Python 脚本。但是如果我进入 repo root 并执行 run.sh
,它工作正常。
文件夹结构如下:
root
|----clone_and_run.sh
|----repo(after cloning from remote)
|----source
|----script.py
|----run.sh
clone_and_run.sh:
#!/usr/bin/env bash
set -e
PYTHONPATH=`pwd`./repo/:$PYTHONPATH
git clone https://---------(redacted)
bash ./repo/run.sh
#!/usr/bin/env bash
set -e
PYTHONPATH=`pwd`/../repo:$PYTHONPATH
python ./source/script.py
这是我在执行 clone_and_run.sh
时得到的错误:python: can't open file './source/script.py': [Errno 2] No such file or directory
克隆后,如果我进入repo
并直接执行run.sh
,它工作正常。我在两个脚本上尝试了不同的 PYTHONPATH
,没有成功。
您没有 cd 进入,run.sh
启动时的当前工作目录 .
不是脚本的目录,它是调用程序的 运行.
要查找调用脚本的目录,我常用的方法是readlink -f [=12=]
。