我目前有一个文件夹结构,将包含一些python脚本,这些脚本需要从某个文件夹中启动,但我想编写一个全局脚本,通过每个文件夹中单独的脚本运行每个python脚本。在
-获得者
--人物角色
---亚瑟
----开始.sh
--初始化.sh在
-人物角色
--亚瑟
---库
----pybot
-----pybot.py
当我运行初始化时,我的目标是使初始化运行“开始.sh“亚瑟是机器人,将有更多不同名称的文件夹,并用find和fire初始化每个文件夹开始.sh一
在初始化.sh我有:
#!/bin/bash
. ./Persona/Arthur/start.sh
在开始.sh我有:
^{pr2}$我得到这个错误:
python: can't open file '../../../Persona/Arthur/lib/pybot/pybot.py': [Errno 2] No such file or directory
但是如果我运行开始.sh它本身从它的目录运行良好。这是因为我假设它是从正确的shell和相应的目录运行它。有没有办法让主脚本运行开始.sh在它自己的壳里就像它自己在运行一样?原因是因为pybot.py将一堆文件保存到开始脚本所在的位置,因为将有多个机器人,我需要他们保存在每个单独的文件夹。在
首先,当你想叫它的时候不要来源
别这样。在
你的脚本有很多问题。它不会工作,因为你当前的工作目录是不确定的。您最好让您的脚本派生出路径,以使自己从abs路径或相对路径的拥挤中解脱出来。在
一般代码可以是
^{pr2}$你可以用这个文件的路径
python调用变成:
这应该是正确的。在
关于
BASH_SOURCE
,请查看https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html如果希望
start.sh
的目录是cwd,则应调用cd
:相关问题 更多 >
编程相关推荐