我在sh shell中创建了一个脚本。
#script.sh
echo $1
if [ x$1 = 'x' ]
then
echo CODE1
else
echo CODE2
fi
1)如果我使用. ./script.sh
OUTPUT: CODE1
2)如果我像. ./script.sh arg1
OUTPUT: arg1
CODE2
3)如果我在使用. ./script.sh
后再次运行它
然后它给了我
OUTPUT: arg1
CODE2
我认为3rd的输出与2nd相同,因为我在第2个shell中运行第3个,因此$ 1未被释放,而第3个则使用第2个$ 1设置的值。
但是如果我使用unset 1解除分配它,那么shell会将错误视为未知识别。
如何释放此环境变量$ 1? 要么 如何将其设置为null。
答案 0 :(得分:0)
通过使用.
获取shell,您将在当前shell的上下文中运行它。如果你不这样做,这些问题都不会发生:
$ ./script.sh
CODE1
$ ./script.sh arg1
arg1
CODE2
$ ./script.sh
CODE1