0

我在 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 具有相同的输出,因为我在与 2nd 相同的 shell 中运行 3rd,因此 $1 没有被释放,并且 3rd 实际上使用 2nd 设置的 $1 的值。

但是如果我使用 unset 1 释放它,那么 shell 会给出错误作为未知标识符。

如何解除分配此环境变量 $1 ?或如何将其设置为空。

4

1 回答 1

0

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

$ ./script.sh 

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

CODE1
于 2013-06-13T05:08:24.873 回答