2013-04-11 56 views
-2

我写了一个依赖于当前文件夹结构的bash脚本, 我应该怎么做才能让它在任何其他文件夹中运行(变得可移植)? 让我解释一下:我想让脚本删除脚本运行的当前目录下的所有文件, 或删除父文件夹中的所有文件, 有什么解决方法?如何使bash脚本可移植?

+3

请向我们展示脚本。 – 2013-04-11 14:22:09

+2

请显示一些代码。 – 2013-04-11 14:22:39

+1

你能分享一些代码吗? – 2013-04-11 14:23:35

回答

0
cd "$(dirname "$0")" 

添加到您的脚本的顶部有它cd到脚本安装在目录中。然后你可以使用相对路径,它们将相对于脚本目录而不是用户的pwd

如果由于某种原因dirname不可用,这里是一个等效的语句,使用basename来代替。

cd "${0%%/$(basename "$0")}" 
+0

感谢john,但是我应该如何在我的脚本中编写rm/foo/bar/*以便它可以在任何地方工作? – 2013-04-11 19:39:55

+0

你可以简单写'rm *' – 2013-04-11 19:44:37

+0

什么系统有basename但不是dirname? – 2013-04-11 21:45:49

-1

请勿在脚本中使用绝对路径。

+0

的文件不要讨厌。答案是正确的,适合缺乏问题的附加信息,为什么downvote? – 2013-04-12 14:22:59

0

我们需要更多的信息,给你一个正确的答案...但是一些提示,如果你需要使它便携的存储,你需要在网络共享上的任何文件,只是做一个新的文件夹断//temporaryScriptFolder/并将网络共享挂载到该空文件夹,以便您轻松访问所需的任何资源。