用脚本获取脚本所在的目录路径,两种方法:
1.在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
新建test.sh,输入:
#!/bin/bash
#获得目录
(cd `dirname $0`;pwd)
其中:
dirname $0,取得当前执行的脚本文件的父目录
cd `dirname $0`,进入这个目录(切换当前工作目录)
pwd,显示当前工作目录(cd执行后的)
运行 sh test.sh,就可以获得当前路径。
2.分开执行
#!/bin/bash
cd $(dirname $0)
PATH=$(pwd)
echo "path:${PATH}"
一般情况下,$var
与${var}
是没有区别的,但是用${ }会比较精确的界定变量名称的范围。
$$ :Shell本身的PID(ProcessID)
$! :Shell最后运行的后台Process的PID
$? :最后运行的命令的结束代码(返回值)
$0 :Shell本身的文件名
1~n:添加到Shell的各参数值。$1是第1参数、$2是第2参数…。