为什么.bashrc中的alias别名不能用于脚本中和Makefile

下周高级计算机网络课要复现并且汇报A会文章,成功复现就能拿A。我选了篇sketch的,sliding sketch, SIGKDD 20’。

没想到编译发现一定要stdc++11,一堆错误。挨个改Makefile确实可以,但是太费劲,所以想在.bashrc里面加个alias别名,

g++='g++ -std=c++11'

没想到一点用都没有。所以还是改了回去。使用自己写的脚本测试发现,alias在shell脚本中用不了,发现因为如下原因。

为什么alias在shell脚本里用不了

简要说,是因为shell分为交互模式和非交互模式,脚本执行时默认是非交互,普通命令行默认是交互,而alias在非交互模式下默认是无法使用的,需要使用shopt命令支持expand_aliases才行。

但是我发现即便使用了shopt,在脚本后面make时也没设置成stdc++11。有人说是因为,make使用的不是bash,而是sh,所以不会将.bashrc作为配置文件,不管.bashrc里有什么都没用。至于如何改,语焉不详。但是.bashrc里的别名不能用于makefile,这样设计是为了兼容性更好,不会出现由于一台设备上的别名其他设备上没有而使编译变复杂的情况。相关说法如下。

Makefile无法使用~/.bashrc中alias定义的命令别名
Makefile当中使用alias命令

回答: 根据引用\[1\]的错误信息,出现了一个SQL语法错误,具体是在MySQL服务器版本中的语法错误,错误的原因是在第4行附近的语法有问题。解决这个问题的方法需要根据具体的错误信息进行调整。另外,引用\[2\]提到了数据库字段使用了小驼峰命名法,而在Java代码中也使用了小驼峰命名法,但是由于mybatis-plus会自动识别小驼峰命名法的属性在数据库中的字段名是experienceo_openness的形式,可能导致错误。所以,可能需要检查数据库中的字段命名是否与Java代码中的属性命名一致。至于引用\[3\]中提到的Unknown database 'szy_mana'错误,这表示数据库中不存在名为'szy_mana'的数据库。因此,需要确保数据库名正确并存在。 #### 引用[.reference_title] - *1* [【解决问题】Error updating ... Cause: java.sql.SQLSyntaxErrorException: You have an error in your S](https://blog.csdn.net/weixin_44436677/article/details/130043463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown columnexperience_openne](https://blog.csdn.net/weixin_55229531/article/details/125021940)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值