我试图使用shc将bash脚本转换为二进制脚本。我放了一个像这样的彩色帮助页面:
#!/bin/bash
if [ "$1" = "--help" ]; then
echo -e "\e[0;31m———————————————\e[0m"
echo -e "\e[0;33m Script help \e[0m"
echo -e "\e[0;31m———————————————\e[0m"
echo -e "\e[0;34mOPTIONS\e[0m"
echo -e "\e[1;33m--help\e[0m"
echo -n " "
echo -e "\e[0;33mAccess this help page.\e[0m"
echo -e "\e[0;31m———————————————\e[0m"
exit 0
fi当我正常测试它的时候,它一直运转良好。但是,我用shc -T -f script将其转换为二进制文件,现在每隔一次运行./script.x --help,它就会给出以下错误消息:
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /bin/bash
Reason: no suitable image found. Did find:
/usr/local/opt/readline/lib/libreadline.6.dylib: open() failed with errno=24
Trace/BPT trap: 5发生了什么?
发布于 2015-03-26 17:19:04
好吧,如果其他人读到同样的问题,我找到了一个解决办法:
sysctl -w kern.maxfiles=65000
这显然是OS所允许的ulimit -n的另一种选择。但它为什么在一开始是必要的,仍然是个谜。
https://stackoverflow.com/questions/29282712
复制相似问题