如何在bash shell脚本中包含文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在bash shell脚本中包含文件相关的知识,希望对你有一定的参考价值。

有没有办法在shell脚本中包含另一个shell脚本才能访问其功能?

就像在php中一样,你可以将include指令与其他PHP文件一起使用,以便通过调用函数名来运行包含在其中的函数。

答案

只需放入脚本:

source FILE

要么

. FILE

这是同一件事。

$ LANG=C help source
source: source filename [arguments]
Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
另一答案

是的,使用source或只是.的简短形式:

. other_script.sh
另一答案

以上答案是正确的,但如果在其他文件夹中运行脚本,则会出现一些问题。

例如,a.shb.sh在同一文件夹中,包括b和. ./b.sh

当从文件夹中运行脚本时,例如使用xx/xx/xx/a.sh,将找不到文件b.sh./b.sh: No such file or directory

我用

. $(dirname "$0")/b.sh
另一答案

在我的情况下,为了在color.sh的同一目录中包含init.sh,我必须做如下的事情。

. ./color.sh

不知道为什么./而不是color.sh直接。 color.sh的含量如下。

RED=`tput setaf 1`
GREEN=`tput setaf 2`
BLUE=`tput setaf 4`
BOLD=`tput bold`
RESET=`tput sgr0`

使用File color.sh不会出错,但颜色不会显示。我在Ubuntu 18.04测试了这个,Bash版本是:

GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)

以上是关于如何在bash shell脚本中包含文件的主要内容,如果未能解决你的问题,请参考以下文章

Shell、CMD、PowerShell、Bash

在输入中包含Cash / Crontab在我的Bash备份脚本中

Linux Shell脚本编程基础

如何将“空白”和“或”条件与 bash 脚本匹配?

在代码片段中包含类型转换

shell的sed工具,如何删除一个文件中包含了特殊路径字符串的行? 例如文件file,里面有内容,