Ubuntu Shell引发编译问题
在Ubuntu 13.04下编译Realtek提供的Linux source包时发生
make_release: 344: make_release: Syntax error: "do" unexpected (expecting "fi")
mv: 无法获取"drivers/net/wireless/realtek/pci/rtl8192ce/../../combo/rtl8192c_8192d/rtl8192_8188CE_linux_drv/" 的文件状态(stat): 没有那个文件或目录
改到Fedora 16下就顺利编译通过。
参考网上资料,发现是 Ubuntu 默认Shell的问题。Unbuntu默认 sh --> /bin/dash,与Fedora标准采用bash不一致。
echo $SHELL 返回 /bin/bash
ls -lis /bin/sh 返回指向/bin/dash
make 时,虽然makefile中已经有 #! /bin/bash,但实际上调用的还是sh。(该makefile是次级目录中的)
bash - GNU Bourne-Again SHell
dash - Debian Almquist Shell
解决方式:
网上提到无效的文件限定的解决方式:
- 文件首行采用 #! /bin/bash 实际上行不通
- 文件首行采用 SHELL=/bin/bash 未测试,但应该不行。 echo $SHELL 已经指向bash
网上资料中提供了最终解决方式:
sudo dpkg-reconfigure dash
在出现的菜单中选择 NO (不使用dash)
参考:
相关推荐
liguojia 2020-10-20
xiaonamylove 2020-10-16
woaimeinuo 2020-10-21
tianhuak 2020-11-24
huha 2020-10-16
lianshaohua 2020-09-23
laisean 2020-11-11
zhangjie 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
CARBON 2020-10-20
彼岸随笔 2020-10-20
lianshaohua 2020-10-20
yutou0 2020-10-17
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16