繁体   English   中英

在shell脚本中包含一大块代码

[英]Including a chunk of code in a shell script

我有许多shell脚本,看起来像这样:

#!/bin/bash

cd ~/Dropbox/cms_sites/examplesite/media
sass -C --style compressed --update css:css

cd ~/Dropbox/cms_sites/examplesite

rm -f ./cache/*.html
rm -fr ./media/.sass-cache/
rm -fr ./admin/media/.sass-cache/


rsync -auvzhL . username@host:/home/username/remote_folder

(我知道cd的使用看起来很奇怪,但它们已经发展了!)

现在,所有这些脚本都有一些区别,因为它们有不同的用户名,主机,本地文件夹和远程文件夹名称,我希望没有经验的用户能够在没有参数的情况下运行它们(因此他可以将它们拖放到一个终端没有问题)。

我想做的是:

#!/bin/bash

cd ~/Dropbox/cms_sites/examplesite/media
sass -C --style compressed --update css:css

cd ~/Dropbox/cms_sites/examplesite

include ~/scripts/common.sh

rsync -auvzhL . username@host:/home/username/remote_folder

然后在common.sh中有一个文件,如下所示:

rm -f ./cache/*.html
rm -fr ./media/.sass-cache/
rm -fr ./admin/media/.sass-cache/

这样我就可以轻松地一次更改许多脚本中的代码部分。

这是可能的,还是有更好的方法来做到这一点,而不使用参数和一个脚本?

使用source命令。 这是bash的'include'版本

如果脚本是可执行的,则不需要“include”:

~/scripts/common.sh

如果脚本不可执行或没有适当的shebang行,那么您需要指定解释器:

bash ~/scripts/common.sh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM