免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
发表于 2008-01-30 10:22 |显示全部楼层
原帖由 寂寞烈火 于 2005-1-15 13:50 发表
AWK:
6. 那两种方法可以实现大小写无关匹配?


这个算一种么?



哈哈,这个也算一种吧。
[root@localhost ~]# cat file | awk '/^[aA][bB][cC]/'
abc
Abc
[root@localhost ~]#

论坛徽章:
0
发表于 2008-05-04 15:38 |显示全部楼层
3. 为什么当低手怯怯地抛出一个问题, 高手快速地给出了漂亮的解答, 却往往最后并没有解决低手的问题?

附加题最后一题
我来回答下:
可能因为水平相差甚远,高手回答的角度和视界是低手所不能理解的。

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2008-05-25 07:23 |显示全部楼层
原帖由 cbsquan 于 2008-5-4 15:38 发表
3. 为什么当低手怯怯地抛出一个问题, 高手快速地给出了漂亮的解答, 却往往最后并没有解决低手的问题?

附加题最后一题
我来回答下:
可能因为水平相差甚远,高手回答的角度和视界是低手所不能理解的。

更重要的是,高手远远不知道新手在想什么???

论坛徽章:
0
发表于 2008-06-06 15:57 |显示全部楼层
这个帖子很好。
目前编写shell,基本都是bash shell,其他的还真没有用过,也不知道是比bash好还是差。目前shell种类太多,不要每个都会,要一个精通就可以了。
sed和awk本身就已经很强大了 足以写本书了。

不希望自己把上面的题目都做出来,自己想要会的都做出来就可以了

论坛徽章:
0
发表于 2008-08-19 15:47 |显示全部楼层
7. 将数据文件中的每个词的第一个字母变成大写. (难度: 2 - 4)
awk版

#!/bin/awk -f
function output(word)
{
        for(j=1; j<=length(word); ++j)
        {
                letter=substr(word,j,1);
                if (letter ~ /[a-zA-Z0-9]/)
                {
                        break
                }
        }

        if (j == 1)
        {
                upper_word=toupper(substr(word,1,1))substr(word,2)
        }else
        {
                upper_word=substr(word,1,j-1)toupper(substr(word,j,1))substr(word,j+1)
        }

        printf"%s ",upper_word
}

{
        for(i=1;i<=NF;++i) output($i);
        printf"\n"
}

论坛徽章:
0
发表于 2008-08-27 12:01 |显示全部楼层

回复 #319 iask 的帖子

sed 's/\b[a-z]/\U&/g' test_2

论坛徽章:
0
发表于 2008-10-01 11:08 |显示全部楼层

shell awk sed三者之间的问题

新手学习shell 发现awk sed功能也很强大 可以自成一个编程语言 awk和sed编程还属不属于shell编程范围之列

论坛徽章:
0
发表于 2009-01-16 13:50 |显示全部楼层
原帖由 bst 于 2005-1-3 17:37 发表



这个的应改是 alias, function, builtin command, external command



BASH:
alias , keyword ,function , builtin command, external command

请指教。

论坛徽章:
0
发表于 2009-03-20 12:27 |显示全部楼层
小弟琢磨了下,大家一起学习下阿,有不足的地方请多多提出阿:
1.有很多shell,你熟悉几种?各个shell的home page在那?
(1)查看当前的shell:  echo $0
(2)查看shell版本:     rpm -qa shellname(bash,sh.....)
    查看当前bash版本:bash --version
                 echo $BASH_VERSION
(3)查看安装了那些shell:    cat /etc/shells
(4)常见shell分为两大主流:   
sh:burne  shell (sh)
   burne  again shell (bash)--大部分linux默认shell
csh:
    c shell (csh)
    tc  shell (tcsh)
    korn shell (ksh)
(5)ksh:http://kornshell.com/
  bash:http://www.gnu.org/software/bash/
----------------------------------------------------
2.为什么说zsh是目前为止功能最大的shell?
注:Z是最后一个字母,所以说是终极shell
Zsh交互性是A+级别的,远高于其它Shell。
在编程方面,Zsh是A级的吧,也是最高的。只是不知道出于什么原因,Zsh被严重的低估了
功能:
1.强大的自动补全功能:可以自动补全命令、参数、文件名、进程、用户名、变量、权限符
2.路径别名。假设有一个很长的路径,例如/home/lighttpd/html,可以把这个路径命名为 ~WWW。
3.兼容主流shell,象bash,csh等
------------------------------------------------------
3.为什么说pdksh功能较弱?
pdkshublic Domain Korn shell,这种shell是Korn shell的克隆版本,使用这种shell需要向AT&T(美国电报电话公司)付费,默认提示符为$
------------------------------------------------------
4.ksh88与ksh93有什么区别?
ksh88: /usr/bin/ksh88
ksh93:/usr/bin/ksh
ksh88不支持++算符
ksh93比ksh88新增加了很多内制的数学函数,好像ksh93支持浮点运算
------------------------------------------------------
5.为什么shell编程最好是用ksh?
ksh对bsh向上兼容,而且增加了csh的许多 好的特征,另外, 就是可以在除了UNIX平台上完美的运行,还可在OS/2,VMS,dos等平台上运行!
-------------------------------------------------------
6.你的系统都有那些shell?版本是多少?
(1)cat /etc/shells:
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
(2)rpm -qa bash/tcsh/ksh
   bash-3.2-21.el5
   tcsh-6.14-12.el5
   ksh-20060214-1.7
------------------------------------------------------
7.你知道POSIX?最新版本是多少?和你的shell有什么关系?
(1)posix表示可移植操作系统接口(portable operating system interface).自从unix诞生以后,很多商家都意识到了unix的商业价值,各个厂家纷纷开发自己的unix发行版,由于各个厂家对unix的开发各自为政,造成了unix的版本十分混乱,给软件的可移植性带来很大的困难,对unix的发展很不利。为了结束这种局面,IEEE开发了 POSIX,POSIX在源码级别上定义了一组最小的unix(类unix)操作系统接口.
(2)POSIX的目的是使应用程序源代码可以在兼容POSIX的操作系统上移植。理想的目标是应用程序移植到另一个操作系统只需要重新编译就可以运行。 POSIX最后一个字母“X”表达了这种超乎操作系统差异的理想。目前并没有实现这种理想:从操作系统看,由于目标、要求、理念、条件的差异,并不是所有的操作系统都实现100%POSIX兼容;从应用程序看,很多代码编写使用了特定操作系统支持的调用,并没有很好地使用POSIX接口。但是,很显然,使用POSIX接口的应用程序在兼容POSIX的操作系统间移植将是很轻松的事情
(3)POSIX标准是一个处于不断发展之中的庞大体系,
包括:
1003.1 系统API
1003.2 SHELL及工具
1003.3 POSIX符合性测试方法
1003.5 ADA语言接口
1003.13 标准化可移植实时应用环境AEP
其中,POSIX 1003.1系列标准是POSIX最主体内容,也是我们最关心的部分。该系列内容由如下主体定义以及一些扩展和增补组成:
1003.1 1988年通过,基本OS接口
1003.1b 1993年通过,实时扩展
1003.1c 1995年通过,线程扩展
1003.1d 1999年通过,实时扩展
1003.1j 2000年通过,高级实时扩展
1003.1q 2000年通过,时间数据流跟踪
(4)Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核
备注:
Unix是AT&T的注册商标,其他厂商必须付费才可以使用。  
Solaris是SUN公司的UNIX系统,因为版权问题不能叫Unix。  
Linux是GNU的操作系统项目,是一个类Unix操作系统
---------------------------------------------------
8./sbin/sh与/bin/sh有什么区别?
(1)Both /sbin/sh and /usr/bin/sh shells are Bourne shells.
(2)The difference is that /sbin/sh is statically linked and /usr/bin/sh is dynamically linked. There is also /bin/sh, however /bin is just a symbolic link to /usr/bin
(3)Dynamically linked binaries use shared libraries during their execution. This
makes them smaller in size and when libraries get updated, the binaries will automatically use the updated libraries.
(4)Statically linked binaries contain all the code within them. They do not use shared libraries at all. This makes them larger in size. The useful thing about statically linked binaries is that they can run all by themselves as they do not depend on shared libraries. If the system is "broken" and libraries
were removed, damaged, or /usr is not mounted, /sbin/sh can still be executed.
静态连接就是把需要的库函数放进你的exe之中,这样,在库函数文件不在的情况下,你的exe仍然可以使用到这个库函数。
动态连接就与之相反,库函数不在exe之中,这样在运行时,就必须加载响应的dll,否则无法正常运行  
静态库在程序运行时就会装入内存,而动态库在调用的时候才装入
  ------------------------------------------
9.你分析过1000行以上的代码?

----------------------------------------
10.各种shell的变量名长度有何限制?
不能超过256个字符






论坛徽章:
0
发表于 2009-08-15 13:43 |显示全部楼层
原帖由 ZealeS 于 2005-1-1 21:03 发表
不看不知道,一看才知道自己原来什么都不是。

是啊,全部70+的题目,居然答不出5道题~~

我发现我一年的shell功底也算是白痴了~~~

[ 本帖最后由 不会跑的兔子 于 2009-8-15 13:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP