Shell获取脚本当前路径

在shell脚本中,获取当前脚本所在的绝对路径,

script_dir=$(cd $(dirname $0);pwd)
  • dirname $0:获取当前脚本所在的绝对目录
  • cd $(dirname $0):进入这个目录
  • pwd:显示切换后脚本所在工作目录

获取脚本的上层目录

dir=$(dirname $script_dir)

补充

  • dirname输出去掉最后一个非斜杠目录名和尾随斜杠以后的剩余部分;如果目录名不包含/,则输出.(表示当前目录)
dirname /usr/bin/  # 输出 /usr
dirname dir1/str  dir/str # 输出 dir1或者dir2
dirname stdio.h # 输出 .
  • $0:如果在当前目录下执行脚本,获取Shell本身的文件名;如果在其他目录下执行脚本,获取相对根目录的完整脚本路径。
  • $$ :Shell本身的PID(ProcessID)
  • $#: 添加到Shell的参数个数 (待确认)
  • $@:所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数(待确认)
  • $1~$n:添加到Shell的各参数值。$1是第1参数、$2是第2参数…
  • $!:Shell最后运行的后台Process的PID
  • $? :最后运行的命令的结束代码(返回值)
  • $-  使用Set命令设定的Flag一览
  • $*  所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
posted @ 2021-06-11 15:17  卡洛小豆  阅读(16719)  评论(0编辑  收藏  举报