在UNIX中,如果要运行位于pwd中的shell脚本,请执行以下操作:
./somescript.sh
但也有:
. somescript.sh
第二个命令是做什么的?
答案 0 :(得分:0)
点是命令的别名" source":http://ss64.com/bash/source.html。
主要区别在于第一种语法试图通过为它运行一些解释器来执行脚本(由hashbang magic header值确定)。对于shell文件,解释器通常是bash或sh,因此shell将作为子进程启动新的shell进程并将脚本作为参数传递。该脚本将在此子进程中独立运行。如果它例如设置了一个环境变量,它将被分离到子进程并在子进程退出时消失
获取文件OTOH,指示当前shell读取所述文件中的指令。在这种情况下,更改将修改当前环境。命令完成后,可以看到更改的环境变量。
Sourcing仅适用于为当前shell编写的shell脚本。执行适用于任何类型的可运行脚本/程序/可执行文件。