我已经在我的机器上设置了 Cygwin 环境(Windows 8.1)。
pol@pol-lap1 ~/下载/软件/数据库/firebird/Firebird-2.5.4.26856-0
$ `set | grep unknown`
BASH_VERSINFO=([0]="4" [1]="3" [2]="33" [3]="1" [4]="release" [5]="x86_64-unknown-cygwin")
echo "bash: $FUNCNAME(): \`${!OPTIND}': unknown argument" 1>&2;
194,10xCelsius 194,unknown 198,offlinescanuncsectorct \
但是,当我这样做时env | grep -i unknown
,什么也没有返回。
pol@pol-lap1 ~/Downloads/software/database/firebird/Firebird-2.5.4.26856-0
$ env | grep -i unknown
pol@pol-lap1 ~/Downloads/software/database/firebird/Firebird-2.5.4.26856-0
注意,环境变量的值为4
pol@pol-lap1 ~/Downloads/software/database/firebird
$ echo $BASH_VERSINFO
4
现在,我想做的是将 $BASH_VERSINFO[5] 的值更改为 x86_64-redhat-linux-gnu,以便“欺骗”系统编译我想要的程序。
我尝试过export BASH_VERSINFO[5]=x86_64-redhat-linux-info
,但这并没有改变什么。
可能我还没有完全理解Linux中的命令set
和命令之间的区别。env
为什么我使用 set 得到的值与使用 env 得到的值不同?
如果有人能够阐明这些问题并让我知道我可以做什么来改变我的变量,我将不胜感激。
答案1
BASH_VERSINFO[5]=x86_64-redhat-linux-info
输出:
bash:BASH_VERSINFO:只读变量
顺便提一句。看:使用 gdb 取消设置只读变量的 Hacky 方法