Shell - nonelittlesong/study-ubuntu GitHub Wiki

Linux下 /etc/profile, /etc/bashrc, ~/.bashrc 的区别

https://blog.csdn.net/u013968345/article/details/21262033

  • /etc/profile - 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.
  • /etc/bashrc(ubuntu是/ect/bash.bashrc) - 它也是全局(公有)的。bash执行时,不管是何种方式,都会读取此文件。
  • ~/.profile - 若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile和~/.bash_login。
  • ~/.bashrc - 当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。

$PWD

当前的路径

变量操作符

shell 提取文件名和目录名

  1. 左截取
${var##*/}
${var#*.}

  1. 右截取
${var%%/*}
${var%/*}

  1. basename 和 dirname
$(basename $var surfix)
$(dirname $var)

Troubleshooting

目录判断为非目录

[ ! -d "$TRAIN_DATA_PATH" ],语法错误
改为[ ! -d $TRAIN_DATA_PATH ]