shell导入其他文件

我在网上找到三种shell导入外部文件的方法。

test1.sh:

#!/bin/bash
echo "this is test1"

通过.导入

通过. filename的方式导入。

test2.sh:

#!/bin/bash

. test1.sh

echo "this is test2"

执行test2.sh的结果:

this is test1
this is test2

通过source导入

通过source filename的方式导入。

test2.sh:

#!/bin/bash

source test1.sh

echo "this is test2"

执行test2.sh的结果:

this is test1
this is test2

通过sh导入

通过sh filename的方式导入。

test2.sh:

#!/bin/bash

sh test1.sh

echo "this is test2"

执行test2.sh的结果:

this is test1
this is test2

Note

导入文件时,如果只是指定文件名,如. test1.sh,那么导入的是本文件同级目录下的文件。

如果指定了路径如. ./test1.sh,那么导入的是执行命令时,命令所处的目录下,这种方式存在的问题就是如果把test2.sh放进PATH路径中的话,在其他地方执行这个脚本会存在./test1.sh文件找不到的问题,即使两个文件都放进了PATH路径中。