首先跑步:
echo ll > test && chmod +x test
然后是这些案例。
案例3:
执行时:
. test
它相当于:
source test
source
是一个shell内置程序,它告诉shell读取给定的脚本文件并执行
当前shell环境
。然而,自
当前路径
或
.
不在你的道路上,它发现
test
使用
PATH
环境变量,它是
/bin/test
.
/箱子/测试
不是真正可以读取/执行的脚本文件
来源
; 它最终读取一个二进制文件并出错,因为该文件是二进制文件,而不是ascii文本文件,并出错写入:
????: command not found
当你跑步时,你会得到同样的行为
source date
或
source ls
因为这些都是二进制文件。
案例1:
您正在执行shell内置
测验
没有任何参数使其以exit值退出:
1
案例2:
当你跑步时
./test
它试图运行
ll
和
alias
在派生子shell中不可用,因此无法找到别名
陆上通信线
。因此,它以退出值退出:
127
具有
./test: line 1: ll: command not found
上的错误
stderr
.
案例4:
. ./test
与相同
source ./test
仅在当前shell中运行的。因此,它能够找到您之前为其设置的别名
陆上通信线
因此它运行别名命令
ls -alFh
并以退出
0