📅  最后修改于: 2023-12-03 15:39:32.668000             🧑  作者: Mango
在编写脚本时,常常需要获取脚本的当前位置,以便进行文件操作或程序逻辑的处理。在 Bash shell 脚本中,可以使用以下变量获取当前位置:
# 获取脚本文件所在目录
script_dir=$(dirname $0)
# 获取脚本文件名(不含路径)
script_name=$(basename $0)
# 获取脚本所在的绝对路径
script_path=$(cd $(dirname $0) && pwd)/$(basename $0)
# 获取当前工作目录
current_dir=$(pwd)
其中,$0
代表脚本文件的路径名。
可以将这些变量用于文件操作,例如:
# 在脚本所在目录创建 foo 目录
mkdir "$script_dir/foo"
# 在脚本所在目录创建 bar.txt 文件,并写入一行内容
echo "Hello World" > "$script_dir/bar.txt"
# 在脚本所在目录查找所有扩展名为 .txt 的文件,并输出它们的名字和大小
find "$script_dir" -name "*.txt" -exec du -h {} \;
同样,可以将这些变量用于判断路径或进行程序逻辑的处理,例如:
# 判断当前位置是否在 /usr/local/bin 目录下
if [[ "$current_dir" == "/usr/local/bin" ]]; then
echo "You are in /usr/local/bin directory"
else
echo "You are not in /usr/local/bin directory"
fi
总结:
在 Bash shell 脚本中,获取当前位置的变量包括:
script_dir
: 脚本文件所在目录。script_name
: 脚本文件名(不含路径)。script_path
: 脚本文件的绝对路径。current_dir
: 当前工作目录。可以将这些变量用于文件操作、判断路径或进行程序逻辑的处理。