Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为在不键入完整路径的情况下运行的命令设置LD_PRELOAD环境变量_Linux_Bash_Environment Variables_Ld Preload - Fatal编程技术网

Linux 为在不键入完整路径的情况下运行的命令设置LD_PRELOAD环境变量

Linux 为在不键入完整路径的情况下运行的命令设置LD_PRELOAD环境变量,linux,bash,environment-variables,ld-preload,Linux,Bash,Environment Variables,Ld Preload,我正在使用LD_PRELOAD,并生成了一个库,它只是将put()封装在一个函数中,该函数在打印之前将要打印的字符串转换为大写。然后我将LD_PRELOAD变量导出为 $ export LD_PRELOAD=/home/adrian/test/myputs.so 现在,在运行命令时,该行为按预期工作 $ /bin/pwd /HOME/ADRIAN/TEST 但它在这样运行时不起作用 $ pwd /home/adrian/test 在这种情况下,是什么机制导致LD_PRELOAD环境变量被忽

我正在使用LD_PRELOAD,并生成了一个库,它只是将put()封装在一个函数中,该函数在打印之前将要打印的字符串转换为大写。然后我将LD_PRELOAD变量导出为

$ export LD_PRELOAD=/home/adrian/test/myputs.so
现在,在运行命令时,该行为按预期工作

$ /bin/pwd
/HOME/ADRIAN/TEST
但它在这样运行时不起作用

$ pwd
/home/adrian/test

在这种情况下,是什么机制导致LD_PRELOAD环境变量被忽略?

因为
pwd
shell内置命令
-请参见
man bash
或。所以如果你写

$ pwd

然后启动内置命令。如果您告诉它路径,它将执行ELF二进制文件并使用LD_预加载。

谢谢!在快速搜索之后,我发现我可以使用
enable-npwd
禁用内置pwd,现在它的行为与预期一样。@eltomo,哇,我没有意识到这种可能性。有趣!