免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lightspeed

[学习共享] [ SHELL 综合水平测试 ] [复制链接]

论坛徽章:
0
发表于 2013-07-16 06:58 |显示全部楼层
不错,一个很好的机会,可以深入了解SHELL的含义

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2013-08-14 17:20 |显示全部楼层
额 难度不低呀 问题巨多。。。

论坛徽章:
24
金牛座
日期:2013-08-21 07:55:52射手座
日期:2014-09-29 15:36:14摩羯座
日期:2014-10-07 21:42:57天秤座
日期:2014-10-16 10:03:00午马
日期:2014-10-19 13:40:31酉鸡
日期:2014-11-08 08:44:54处女座
日期:2014-11-10 17:01:21午马
日期:2014-12-06 16:52:38羊年新春福章
日期:2015-02-12 17:41:512015年迎新春徽章
日期:2015-03-04 09:58:1115-16赛季CBA联赛之广夏
日期:2022-10-07 19:41:11巳蛇
日期:2014-09-13 15:29:54
发表于 2013-09-08 17:21 |显示全部楼层
菜鸟的我  还需努力

论坛徽章:
0
发表于 2013-10-29 21:13 |显示全部楼层
好像很有道理,要学习

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-05-02 17:48 |显示全部楼层
        可能由于历史原因,当时shell种类众多,现在差不多是linux/GNU一统天下的时代,所以众多考古问题,比如pdksh,这个估计没几个人能接触到吧。所以做不出来也无所谓,很多题目可能现在看来是博君一笑而已。比如各种shell的Homepage,现在看来完全没有意义,google就好了。比如,shell 变量名长度,我敢说肯定超过30 字节,至于多少我也不知道,但实际工作中的shell谁会写这么长的名字呢?完全是考古罢了,好比知道茴香豆的四种写法一样,工作中知道一个行,至于diff写一个svn,这完全是极品geek的做法啊,但完全不具实际意义。否则svn/perforce/等厂商都要倒闭了。如我上述,姑且一笑罢了。

    个人感觉有几个还值得一看,根据个人浅见解答如下,欢迎探讨,

  1. cmd  >a  2>a 和 cmd  >a  2>&1 为什么不同?
  2. 1.cmd的错误输出到a,2的由于2>&1,错误和标准输出都到a,

  3. 当 while read .. 这样的语句用于 pipe 右侧时,需注意什么?
  4. 参见waker的新手导航

  5. shell 中含有大量文档.不想在每行之前用 # 注释. 有那两种方法可以实现?

  6. :<<comment
  7. your code

  8. comment
  9. 或者if [ 0 -eq 0 ] ;then
  10. echo 'comment here'

  11. #### your code

  12. fi

  13. sed把每个词的首字母换成大写,
  14. sed 's/\b[a-z]/\U&/g'

  15. \b来指定边界

  16. sed是greedy match,如何实现lazy match ?

  17. 不好表达,就是尽可能的把regexp匹配你要提取的内容,同时把regexp匹配其他的部分用另外的字符或regexp来约束。

  18. 比如# echo "<b>foo</b>bar" | sed 's/<.*>//g'
  19. bar
  20. <>里面的.*匹配了<b>foo</b>这部分,正是greedy match的,它尽可可能的匹配最多。
  21. echo "<b>foo</b>bar" | sed 's/<[^>]*>//g'
  22. foobar
  23. 限定了匹配条件<>里面是非>开头的部分,这样准确匹配了2个html的标签。
  24. 实现了lazy match.
  25. 1. awk, oawk, nawk, gawk, mawk 有什么区别?

  26. 手册有,记不清了,主要是函数以及对GNU的支持与否,还有regexp有区别

  27. 3. awk -F"" 与 awk -F "" 有区别吗?

  28. 第一个会报错,第二个是每个字符作为一个域,第一个是什么看不懂

  29. 4. 可以这样设置 FS 吗?  

  30.    FS = "[ \t]+\|[ \t]+"

  31. 可以,但会有warning, \是多余的,GNU的awk会有一个warning,把|当做普通字符,因为\不需要转义,手册有介绍

  32. 5. gawk 有一个扩展表达式与其他 GNU 工具不同, 是哪个, 为什么?

  33. 手册有,不过该题有什么意义呢?完全为了考古?

  34. 6. 那两种方法可以实现大小写无关匹配?
  35. gnu的awk 有个IGNORECASE,打开即可或者[a-zA-Z]

  36. 7. 下列两句有何区别?

  37. awk '$0 ~ "[ \t\n]"'
  38. awk '$0 ~ /[ \t\n]/'

  39. 第一个匹配字符(字符是空格,\t,\n和[]),第二个匹配是regexp


  40. 8. FS=" " 和 FS=" +" 有何区别?

  41. 第一个连续的空格/tab/newline做FS, 多个(>1)空格做FS

  42. 9. 如何将每一个字符作为一个 field ?

  43. 设FS=""


  44. 10. 如何将整个文件作为一个 field ?

  45. FS="\n" 或者设一个未在record出现的字符做FS即可,比如record是 a b cd ,那FS不是abcd和空格\n之一就可以了。

  46. 11. RS="" 与 RS="\n\n+" 有何区别?

  47. 打字太累,参见Tim的awk的心得

  48. 12. NR 和 FNR 有何区别?

  49. 懒得打字了,FNR是不会累加的。。。

  50. 13. getline < "file" 改变那些 builtin 变量?

  51. 懒得看了,手册有

  52. 14. 如何不打印最后一个 field? (不用循环)

  53. awk 'NF{NF-=1}1' file ,有人喜欢用NF="",这个不对的,这里是把该域设为空,print NF会发现NF并未减少。

  54. 18. 如何将 awk 中得到的值赋给 shell 变量.
  55. eval 或者``和$()
  56.  
复制代码

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
发表于 2016-01-21 19:54 |显示全部楼层
awk中asort和asorti可以给数组排序

两者排序区别:
asort 是对数组的值进行排序,并且会丢掉原先键值;
asorti是对数组的下标进行排序。

回复 35# 寂寞烈火


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP