如何在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.sh
和b.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脚本中包含文件的主要内容,如果未能解决你的问题,请参考以下文章