执行“ ./script”和“ .script”的输出不同

时间:2019-05-06 18:19:54

标签: linux bash

我有这个脚本(script.sh

#!/bin/bash
res=$( set | egrep -o "BASH_[[:alnum:]]+" | sort | uniq )
printf "%s\n" $res

当我尝试./script.sh时,输出为:

BASH_ALIASES
BASH_ARGC
BASH_ARGV
BASH_CMDS
BASH_LINENO
BASH_SOURCE
BASH_VERSINFO
BASH_VERSION

使用. script.sh,输出为:

BASH_ALIASES
BASH_ARGC
BASH_ARGV
BASH_CMDS
BASH_COMPLETION
BASH_LINENO
BASH_REMATCH
BASH_SOURCE
BASH_VERSINFO
BASH_VERSION

为什么第一个结果不完整/更少?他们的执行有什么区别?我读到./script启动了一个子Shell,但我不太了解在当前Shell和子Shell中运行之间的区别。

0 个答案:

没有答案