关于基础的问题:在为从脚本启动的程序调整环境变量时,我最终对 sh 产生了一些奇怪的行为(这似乎实际上与 bash 相关联):变量设置似乎与命令行参数混淆了。
有人可以解释为什么会这样吗?
一个简单的脚本:
#! /bin/sh
# Messes with $1 ??
set ANT_OPTS=-Xmx512M
export ANT_OPTS
# Works
# export ANT_OPTS=-Xmx512M
echo "0 = $0"
echo "1 = $1"
当我使用上面的选项(set + export)运行它时,结果如下:
$ ./test.sh foo
0 = ./test.sh
1 = ANT_OPTS=-Xmx512M
但是使用较低的替代方案(直接出口),结果正如我所料:
$ ./test.sh foo
0 = ./test.sh
1 = foo
肯定有合乎逻辑的解释,只是我还没有弄清楚。有人有想法吗?
兄弟,图科