当我打开一个终端时,它说不能执行二进制文件,输出是这样的:
bash: /home/sandeep/bin/uname: cannot execute binary file
bash: [: =: unary operator expected
bash: /home/sandeep/bin/sed: cannot execute binary file
bash: /home/sandeep/bin/ls: cannot execute binary file
然后是一切正常的正常提示。但作为程序员,每次打开终端时都会看到很多错误,这很烦人。
我发现的原因是,当我安装了一个armeabi工具链时,它在主目录中创建了一个名为bin的文件夹,该目录中的所有可执行文件都用于arm处理器。但是我的终端正在打开时它试图执行这些arm二进制文件,因此它显示了一个错误,这些二进制文件无法执行(因为我的proc不是arm)
为了解决这个问题,我可以删除这个文件夹(我试过它并且有效)但这不是最佳解决方案。我想知道当我打开一个终端试图在启动时执行错误的二进制文件时执行的脚本。
我看了一下.bashrc但是我的问题没有任何相关内容。
答案 0 :(得分:1)
从$ PATH环境变量中删除/ home / sandeep / bin。
答案 1 :(得分:1)
我用strace调试它
strace -e trace=open,read bash > output.txt
然后你可以检查调用bash时打开的文件