例如,我想编写一个bash shell脚本来执行循环备份,其格式为rsync
。我应该把它作为一个独立的脚本文件(backup.sh
)还是将它包装在一个函数中(backup
)?作为脚本文件,我可以运行它bash backup.sh
。作为一个函数,我可以把它放在一个文件中,例如foo.sh
,并在我登录时获取它,然后我可以简单地运行backup
作为备份我的文件的命令。问题是,这两种策略有哪些缺点和优点?独立shell脚本与shell函数?
更一般地说,我想知道,在什么情况下,我应该实现一个功能作为一个独立的Shell脚本文件或作为一个shell函数?
我的一些想法:我知道一些图形会话(如KDE,Gnome等)在登录时输入不同的文件。如果想在图形启动的应用程序中使用shell函数(例如单击图标打开emacs),可能会造成一些混淆。但我更喜欢实现shell函数并将它们合并到文件中,我认为它们整齐有序。
任何其他想法或建议?
这个标准对我来说似乎很模糊。我真的看不到脚本带来的清晰度。一个函数所需的资源往往是可以忽略的,不是吗? – RNA
它们有点含糊,但如果我不会每小时使用一次该代码,它就属于脚本。我使用脚本来处理比我更频繁使用的东西。实际上,我在shell中有两个函数,其中一个是因为IT提供的'/ etc/profile'中的一个错误(bug:'unset pathmunge'不能删除函数;需要'unset -f pathmunge'),而我也没有创建另一个 - 我还没有追踪它的来源。我一直使用脚本;我有数百个在我的$ HOME/bin中。 [...继续...] –
[...继续...]不要误解我的意思;有时间使用功能。我的许多脚本都包含函数,因为它们可以更轻松地编写脚本。但是我在我的主登录shell环境中没有太多功能。 –