linux shell脚本中获取当前脚本所在目录的方法只使用sh基本语法不使用readlink和dirname提供示例脚本。
可以使用$0获取当前脚本的路径和文件名,然后使用字符串截取的方式获取当前脚本所在的目录。示例脚本如下:
#!/bin/sh
# 获取当前脚本的路径和文件名
script_path=$(readlink -f $0)
# 使用字符串截取的方式获取当前脚本所在的目录
script_dir=${script_path%/*}
echo "当前脚本所在目录为: $script_dir"
上述示例中使用了readlink命令获取当前脚本的绝对路径,因此不符合题目要求。如果不使用readlink命令,可以将$0当做相对路径处理,示例脚本如下:
#!/bin/sh
# 获取当前脚本的相对路径和文件名
script_path=$0
# 如果当前脚本在当前目录下执行,需要添加./前缀
if [ ${script_path:0:1} != "/" ]; then
script_path=./$script_path
fi
# 使用字符串截取的方式获取当前脚本所在的目录
script_dir=${script_path%/*}
echo "当前脚本所在目录为: $script_dir"
上述示例中,首先获取当前脚本的相对路径和文件名,然后判断是否需要添加./前缀,最后使用字符串截取的方式获取当前脚本所在的目录
原文地址: https://www.cveoy.top/t/topic/dbiz 著作权归作者所有。请勿转载和采集!