【发布时间】:2013-09-16 13:02:46
【问题描述】:
所以得到这个。我已经用 ./something.sh 和 sh something.sh 运行我的脚本大约 3 个月了。这些脚本总是从我启动它们的目录中运行。
现在我的脚本突然不起作用了,因为它们似乎是从 / 而不是当前目录启动的。例如,假设我的脚本如下所示:
cd players
rm *
它没有进入播放器,而是因为找不到文件夹“播放器”而出错,然后尝试删除整个根文件系统。 (幸运的是,我没有以 Sudo 或 Root 身份运行这些)。
有什么想法吗?这是以前的工作发现,现在才开始起作用!
谢谢!
【问题讨论】:
-
你从哪里运行你的脚本?
-
您应该立即将脚本更改为
rm players/*。之后尝试解决问题。 -
mnagel 是对的。但最好使用完整路径:
rm /path/to/players/* -
您可以声明和导出用于创建完整路径的全局变量。易于配置和更改。
-
我会使用完整路径,但是当我创建脚本时(它显然比我放的要大,我只是以此为例)我需要制作它,所以我没有无论我把它放在哪个目录中都要改变它。这就是我不使用完整路径的原因。奇怪的是它随机停止工作。我会尝试这些事情,让每个人都知道它是否有效。不过还是很好奇发生了什么!
标签: bash shell ubuntu scripting