目录
随记
一、不同方式运行指令
export PATH="$NEW_SDK/bin/cache/dart-sdk/bin:$PATH"
export PATH="$NEW_SDK/bin:$PATH"
上边指令直接在终端窗口运行和放在test.sh文件通过./test.sh运行有什么不同?
直接在终端窗口运行,然后flutter –version 发现当前环境的flutter版本已经被修改。
通过./test.sh运行,然后flutter –version 发现当前环境的flutter版本没有变化。
核心原因
shell 脚本默认是创建【子进程】执行,子进程内部修改 PATH 只会生效在子 shell,脚本执行结束后,父终端环境完全不受影响;而直接在当前终端敲命令,修改的就是父 shell 自身环境变量,所以立刻生效。
source ./test.sh = 在当前终端执行脚本,环境变量会生效,相当于直接在窗口执行指令。
二、不安全的写权限
如果有下面提示,表明系统中的某个目录被设置为可写入,但不安全。在你的情况下,这个目录是/usr/local/bin
warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
修复目录权限: 使用以下命令将目录权限更改为更安全的设置
# 去掉组和其他用户的写权限
# g 表示“组”(group)。
# o 表示“其他”(others)。
# -w 表示“去掉写”权限。
chmod go-w /usr/local/bin
行者常至,为者常成!