取消设置参数变量

时间:2013-06-13 05:04:34

标签: linux shell unix sh

我在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。

1 个答案:

答案 0 :(得分:0)

通过使用.获取shell,您将在当前shell的上下文中运行它。如果你不这样做,这些问题都不会发生:

$ ./script.sh 

CODE1
$ ./script.sh arg1
arg1
CODE2
$ ./script.sh

CODE1