首先要弄清楚:shell的登录模式与非登录模式的区别,两者加载的初始化文件不一样。
1.登录模式: su - 用户名
顺序加载文件:/etc/profile 、/etc/bashrc/ 、~/.bashrc、~/.bash_profile
2非登录模式: su 用户名
顺序加载文件:/etc/bashrc/ 、~/.bashrc
shell编程必须以
#!/bin/bash
作为开始行,有点类似于C语言里面必有main()函数一样。shell里面行首字符是#时,该行是注释。一直以为shell脚本的第一行是注释,随着学习的深入,明白第一行是一个声明,告知所采用shell所在的路径,#!是特殊字符。如果缺省,这按系统默认的shell执行shell脚本,这可能会带来问题。不同的linux默认的shell不同。