美文网首页
sh与bash并不是一样的,抄作业时请对着抄

sh与bash并不是一样的,抄作业时请对着抄

作者: 腐草为嘤 | 来源:发表于2020-09-11 17:13 被阅读0次

    大家好,我是鸽无止境的草草哒。
    好了好了,不用查族谱看我是哪位列祖列宗关注的简书作者了,总之今天我又发现了新的奇怪bug。


    事情是这样的。
[站外图片上传中...(image-52c882-1599817028939)]
    我正在测试一个船新的call SV的软件,叫做MUMandCo,是一个以MUMmernucmer功能为基础编写的shell脚本。在运行其测试数据时,我就光荣地报了错。

/PATH/mumandco_v2.4.sh: line 763: syntax error near unexpected token `('

    当时我就万分疑惑,这可是软件的测试数据啊,怎么可能会跑不通呢?再一看,这软件半个月前还更新过,如果测试数据会报错肯定会有很多人反馈给开发者,不至于到现在还存在BUG。于是我把目光转向这诡异的第763行命令。

awk -F'\t' 'NR==FNR { dup[$0]; next; } $9 in dup' <(awk -F'\t' '{print $9}' $prefix.1000bp_invfilt_r_groups | sort | uniq -d) $prefix.1000bp_invfilt_r_groups > $prefix.1000bp_invfilt_r_groups2

    最开始看到这行命令时,我下意识觉得它的小括号位置肯定存在错误。虽然我已经是一名熟练【并不x】的awk操作工,但我从来没见过用<来将后续小括号中输出内容作为前方输入的写法。
    于是我将出错的前置文件单独放了一个目录,然后用这行命令直接测试,结果是:没有报错!

WTF?!!!
    难道说这行awk命令虽然看上去怪怪的,但其实是可以运行的,那么为什么在shell脚本中会报错呢?
    我就这样在百思不得其解中思bai考du了半天,最后在一篇CSDN的文章中终于找到了靠谱的解释:就是这里
    这篇文章中提到shbash在执行程序时居然是不一样的!所以我去查了一下资料,发现:
    sh(Bourne Shell)是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。
    bash(Bourne-Again Shell)是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。
    也就是说虽然我们查看服务器上sh命令时发现它链接到bash,可它们并不是同样的!sh对于命令符合POSIX标准更加严格,而bash兼容性更佳。
    这时,我看了一眼MUMandCo的示例程序,果然上面写的是bash,是我在抄作业时图省事直接写成sh,现在就是很后悔,非常后悔。

相关文章

  • sh与bash并不是一样的,抄作业时请对着抄

        大家好,我是鸽无止境的草草哒。    好了好了,不用查族谱看我是哪位列祖列宗关注的简书作者了,总之今天我又...

  • 2017-12-21我大学里那点儿趣事

    自从上了大学,抄作业变得理所当然。“全班都抄得一样,好呗?” 我们都知道“不怕抄的一样,就怕错的一样。”老师说:“...

  • 同学

    不知道大家有没有遇到这样的情况,临交作业前,同学找你借想抄一抄,考试时,同学捅捅你,想抄一抄…… 这个时候是给抄还...

  • 牛人,其实都在做逆人性的事

    想成为牛人 ,必须要会抄作业。 华为说,抄作业是追上标杆的最快方法,伟大企业全靠抄,就看您会抄不会抄。 要学打羽毛...

  • 抄作业

    同学想抄作业。 不行! 我走了上去, 不能抄! 你也没写完吧,一起抄! 我很欢喜, 一起开始抄作业。

  • 2019.10.28星期一晴

    今天女儿终于在写作业时没睡着,因为自己想了办法,首先数学作业是让我帮她抄题目,然后是语文作业抄词语时让我给...

  • 最近怎么都流行“抄作业”?

    “抄作业”的人在印象中都是“懒、不爱学习、差生”;而学霸们大多不爱把作业给别人抄,辛辛苦苦埋头苦干3小时,抄完只要...

  • 【精髓】什么是抄作业?

    文/明镜小书生 作业可以抄,但不是一字不漏的抄,那不叫抄,叫偷。 抄作业的精髓,在于神而不是形。 例如,有个美人叫...

  • 抄作业

    这里说到抄作业,是指买基金、可转债、买股票这些,并不是学生时代那种抄作业。 刚看一下支付宝基金,我的丐帮基金收益率...

  • 抄作业是一门学问

    【摘要】别人买什么你也跟着买,谓之抄作业。 我是蚂蚁平台典型抄作业大Ⅴ。 你可能认为抄作业是件容易的事,其实,不然...

网友评论

      本文标题:sh与bash并不是一样的,抄作业时请对着抄

      本文链接:https://www.haomeiwen.com/subject/cjjbektx.html