1.shell文件test.sh:
#!/bin/bash
cd..
mkdir ./hehe (./代表当前目录下)
直接执行 ./test.sh 此时在上层创建了hehe文件,但是无法cd到上层目录
原因:执行脚本的时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录,当前指令完毕后会回到当前目录。
解决:. source脚本可以没有执行权限,会在当前进程中执行
直接执行 . test.sh或者. ./test.sh或者source test.sh可以没有执行权限,会在当前进程中执行
2.#!/bin/bash
path="/Users/yanhe2/Library/"
cd $path
. ./test.sh或者source ./test.sh会进入到path目录
3.
#!/bin/bash
path="/Users/yanhe2/Library/"
path2="/Users/yanhe2/Library/Android/"
CAD=$(cd$path;cd$path2;pwd)
echo $CAD 输出/Users/yanhe2/Library/Android但是目录不会切换原因同上会开辟一个子线程
4.
CAD=$(cd`dirname $0`;pwd)
$() 括号内代表命令
$0:当前Shell程序的文件名
dirname $0,获取当前Shell程序的路径
cd `dirname $0`,进入当前Shell程序的目录
pwd代表当前工作目录(cd到文件所在的目录的目录那么pwd就是当前文件的目录了)
网友评论