博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬
我们在编写shell脚本时,常常需要调用其他脚本。那此时就需要考虑被调用脚本中的相对路径指向哪里。比如,被调用的脚本中写了pwd命令,那么这个pwd的输出是什么呢?或者是被调用的脚本中写了相对路径的输出echo "hello laowang" > output.txt ,那这个txt文档是输出到哪里呢?
实测表明:无论是相对路径调用,还是绝对路径调用;无论是通过命令直接调用,还是通过调用其他脚本而间接调用,被调用的shell脚本中的相对路径都是相对于直接输入命令的路径。
通过命令直接调用的,其相对路径是基于输入调用命令时的当前路径。
通过调用其他脚本而间接调用的,无论中间有多少个间接脚本,其相对路径都是基于输入间接调用命令的当前路径。
在对应路径下创建以下两个脚本:
#!/bin/bash
# script path:/home/laowang/test/invoked/b.sh
echo "这是被调用的脚本b.sh"
pwd
#!/bin/bash
# script path:/home/laowang/demo/a.sh
echo "这是调用b.sh的脚本a.sh"
# 前面是否加source不影响本文的测试结果
/home/laowang/test/invoked/b.sh
参照以下流程,可以验证。

如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。