我在 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
我认为第 3 个输出与第 2 个输出相同,因为我在与第 2 个相同的 shell 中运行第 3 个,所以 $1 没有被释放,第 3 个实际上使用的是第 2 个设置的 $1 的值。
但是如果我使用 unset 1 取消分配它,那么 shell 会给出未知的 identifire 错误。
如何解除分配此环境变量 $1 ? 或者 如何将其设置为 null。
最佳答案
通过使用 .
获取 shell,您可以在当前 shell 的上下文中运行它。如果您不这样做,这些问题都不会发生:
$ ./script.sh
CODE1
$ ./script.sh arg1
arg1
CODE2
$ ./script.sh
CODE1
关于linux - 取消设置参数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079578/