1.语法解析:DIR="$( cd "$(dirname "$0")" ; pwd -P )"
$0 是linux中shell的变量,$0只是shell的变量其中的一个。$0指的是 Shell本身的文件名
($+数字 一般是位置参数的用法。
$+数字 一般是位置参数的用法。
如果运行脚本的时候带参数,那么可以在脚本里通过 $1 获取第一个参数,$2 获取第二个参数......依此类推,一共可以直接获取9个参数(称为位置参数)。$0用于获取脚本名称。)
)
dirname 用于取指定路径所在的目录 ,如 dirname /home/ikidou 结果为 /homecd 为切换文件夹 ; $(命令) 返回该命令的结果所以 命令 cd "$(dirname "$0")" 在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的目录"."。这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
命令中的分号是用来隔断每个语法关键字或命令的 。对于字符的比较及其他shell语法关键字之间分号的使用方式相同。需要知道的是在不同的语法命令之间要用分号隔开或是换行方能执行,否则将会在调用脚本的时候报错。
。对于字符的比较及其他shell语法关键字之间分号的使用方式相同。需要知道的是在不同的语法命令之间要用分号隔开或是换行方能执行,否则将会在调用脚本的时候报错。
pwd -P:如果目录是链接时:格式:pwd -P 显示出实际路径,而非使用连接(link)路径。
综上所述:该命令含义为DIR的值是返回的 当前脚本所在目录的路径。
2.tar -xf cifar-10-binary.tar.gz && rm -f cifar-10-binary.tar.gz
&&:shell中的command1&&command2命令
1 命令之间使用 && 连接,实现逻辑与的功能。
2 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
3 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。