PATH的问题
曾经有一个面试官问我如果环节变量都配置过了,有一个脚本的命令和系统命令相同,会先执行哪一个。 我不懂 一直没想过这个,也没研究那么深。今天贴出我的实验。
结果是命令的执行和PATH的顺序有关系。将/tmp放入最后还是显示的日期。
####################################################################
说明:下面是最初学习linux的时候通过看鸟哥然后实验、总结的。存放电脑好久了,分享出来了。
3、type命令
作用:确定命令是bash内建指令还是外部命令。如果是外部命令,可以用其查看命令位置。
-a 列出所有该命令,包括alias。
-t 列出命令类型
FILE 外部命令
Alias 别名
Builtin 内部命令
4、变量的设定
固定字符串代表不固定内容。
MAIL=/var/spool/mail/root MAIL就是个变数,代表右边的路径。
变量规则的设定
(1) =两边不能接空白字符。 下图中的几行命令均有空格,红点标出,结果系统无法识别。(2)变数只能以英文字母与数字组成,但是不能以数字开头。
(3)若变数内容有空格,用(“”)(‘’)扩起来。但是 “”内的特殊字符保持原有特性。
''内部特殊字符为文本。
(4)转义字符(\)可将特殊符号($ \ 空格 ‘等)变成文本。
(5)在一串指令中海需要其他指令,用$(指令)或`指令`(注:是1旁边的反引号)。
(6)增加变数内容,用”$变数名称”来增加内容。例如:PATH="$PATH":/home/bin
(7)取消变量
unset kk取消对kk 设定的变量。 (8) 若变量需要在其他子程序执行,用export PATH
5、source与sh xxx.sh的区别
source 文件名
是指在当前bash环节下读取并执行xxx.sh文件,结果同 . xxx.sh,不需要exit直接就能读取变量。
sh xxx.sh
这个是我们经常执行脚本的方式,但是这个是在子进程中进行的,执行完后结构是不会返回给父进程的。