linuxseteval的使用小案例解答

本博文主要是讲解学生提出的如下一行命令脚本定义的真正内涵:
runlevel=$(set -- $(runlevel); eval "echo \$$#" )
以下是老男孩培训14期VIP群内的对话解答记录,内容已做过滤,有的网友以前反映过,说老男孩发的记录时间对不上,其实老男孩只是以对话问答的形式让大家掌握技术而已,内容是加工过的属正常,不要大惊小怪,给大家看的一定是最容易理解的对话过程,也尽量保持了原来的对话。
解答对话:
北京-刘同学(123437415) 2013/4/10 23:01:07
求问一些服务的启动脚本runlevel=$(set -- $(runlevel); eval "echo \$$#" ) 这个runlevel是怎么把这个运行级别的取到的
 
北京老男孩老师(49000448) 10:57:44
你敲一下runlevel看看。
 
北京-刘同学(123437415) 10:59:39
[root@G307 ~]# runlevel
N 3
 
北京老男孩老师(49000448) 11:00:31
后面的3就是运行级别

北京-刘同学(123437415) 11:00:39

啊,明白了,他是 $#=2 然后 $2=3是这样吧
老男孩老师点评:对。
北京-陶同学<DD@sina.com> 11:05:19
$# 获取当前shell命令行中参数的总个数
$n 获取当前执行的shell脚本的第n个参数值,n=1,...9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起来${10}
老男孩老师点评:这个同学说的是命令行脚本传参的内容,也适合本文。

北京-李灿(123458724) 11:08:22
eval对echo \$$#的双重扫描
假如要的参数不是最后一个 那么这个总数 就不准确了是吧
老男孩老师点评:对的。取最后一个才能这么用。
北京老男孩老师(49000448) 11:09:19
set 和eval的用法比较特殊,后期课程慢慢的给大家***,现在是学习的刚刚开始啊。
先给大家一个例子:
[root@oldboy ~]# set -- "I am" handsome oldboy. #==>传入三个参数
[root@oldboy ~]#
[root@oldboy ~]# echo $##==>现在有三个参数
3
[root@oldboy ~]# for i in $*;do echo $i;done #==>循环打印这些参数,用$*,无引号
I
am
handsome
oldboy.
[root@oldboy ~]# for i in $@;do echo $i;done #==>在没有双引号的情况下,这里的结果$*和$@是一样的
I
am
handsome
oldboy.

北京老男孩老师(49000448) 11:10:22
上面是咱们老男孩培训后期课程教案里的一个例子
北京老男孩老师(49000448) 11:12:59
[root@oldboy ~]# set -- $(runlevel)
[root@oldboy ~]# echo $#
2
[root@oldboy ~]# echo $(set $(runlevel); eval "echo $2" )
3
刘同学同学你理解这个吧。这个会了,那个就差不多了
北京-刘同学(123437415) 11:13:45
恩,懂了
 
北京老男孩老师(49000448) 11:13:55
set可以像命令行一样设置传参,这个用法不多见!
了解就得,工作几乎不需要必须用它
北京-刘同学(123437415) 11:14:20
恩,好的
北京老男孩老师(49000448) 11:15:42
既然你懂了,我就在多说下,哈哈!
runlevel=$(set -- $(runlevel); eval "echo \$$#" )
1)这里的$#就是参数个数为2,即runlevel的结果, 所以\$$#就是$2,即runlevel结果的第二列3
[root@G307 ~]# runlevel
N 3
2)eval就是把echo的字符串,当做命令解析!解答了这么多 其实知识含量已经非常多了。
可以写一篇博文了。
北京-李灿(123458724) 11:16:52
echo $ #输出括号内的值
(set $(runlevel); #将runlevel参数值,传入shell,N 3
eval "echo $2" ) #eval二次扫描,首先扫描到echo输出$2,第二次解析$2的值为等级3
这样子吗?
 
北京老男孩老师(49000448) 11:17:15
GOOD,赞啊!李同学强悍啊,加油,未来是块学习linux的材料,嘿嘿!
 
北京老男孩老师(49000448)  11:33:43
提醒下啊,问完问题 还有点事要做啊
这是老师给老男孩培训的全体同学们解答问题的唯一默认条件。。
总结好,发到咱们群共享里或者传到SVN共享里。
再强调下啊:同学们和老男孩老师学习,最应该学习的就是这样的学习方法和学习习惯,而不仅仅是技术本文,同学们切记。这次我也会发博文总结本次的对话,算是给你们做个榜样吧,下次就是你们了。

linux下set和eval的使用小案例精彩解答相关推荐

  1. linux下配置apache多站点访问-小案例

    一级域名(baidu.com)也叫作顶级域名,注册一级域名是需要付费的. 而二级域名(image.baidu.com)是一级域名的延伸,所以只要购买了一级域名,二级域名是可以任意配置的. 其实(www ...

  2. linux下使用gvim,字号太小,怎么修改?

    linux下使用gvim,字号太小,怎么修改? 在/home/.vimrc文件的最后添加以下: set guifont=Monospace\ 12,其中,Monospace为字体名,11为字号,注意\ ...

  3. Linux下find命令的使用(命令+案例)

    一.find的作用? •递归式查找 •根据预设的条件递归查找对应的文件 二.find使用方法 – find [目录] [条件1]- -type 类型(f文本文件.d目录.l快捷方式) 代码如下: &l ...

  4. Kali Linux下口令字典破解WAP2加密小实验

    仅仅是一个新手的小实验,不具有实际意义,记录下流程.用口令字典是暴力破解,字典越大越好,上不封顶,实验测试我只用了一个常用很小的弱口令字典. 环境: win10笔记本 迅捷FAST FW150U US ...

  5. linux根目录下并行计算,【求助】MS在Linux下的并行计算问题 - 第一原理 - 小木虫 - 学术 科研 互动社区...

    先在win下生成计算castep所需的文件,param和cell,导入Linux系统. 在计算的时候,如果不指定cpu的个数,直接"./RunCastep.sh name",就能计 ...

  6. matlab中并行用不了,请教matlab在linux下的并行问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...

    刚在网上搜了一下,matlabpool open local 8 设置节点数,但是必须在matlab下面才行,比如我打开linux, >>matlab 进入matlab系统,然后matla ...

  7. Linux下基于c++的简单五子棋小游戏

    目录 一.五子棋项目介绍 1.游戏规则 2.五指棋界面显示 二. VT100简介 1.VT100控制码 2.前景颜色(字体颜色)设置 3. 背景颜色设置 三.配置头文件 四.棋子对象设计 1.棋子的抽 ...

  8. 在LINUX下玩小游戏

    在LINUX下玩小游戏 阮志峰 2001年 4期 2001年春节就快到了,在春节假期中,大家都想尽情放松一下吧!其实,在Linux下也有很多好玩的小游戏.下面,小编就向大家介绍几个,愿大家过一个欢 ...

  9. linux ie 插件目录在哪个文件夹里,Linux下的IE浏览器使用方法[图]

    各位Linux使用者必然遇到的一个问题是:在Linux下用mozilla或其它系列的浏览器打开某个asp网站时出现一些奇怪现象,要么某些部分不能显示,要么某些按钮不能按,要么某输入框不能输入-- 本人 ...

最新文章

  1. VS2008 VS2010发布网站时如何产生固定命名的 Dll 文件
  2. 博易大师服务器文件,博易大师自选和页面设置文件如何保存?
  3. 4~20mA电流输出芯片XTR111完整电路(转)
  4. 特老的文章:三层应该怎么划分。不知大家还有用否
  5. CentOS7救援模式以及救援模式的网络配置
  6. 云服务器上找不到指定的加密锁,请问电脑上的系统文件打不开 桌面上显示找不到指定的加密锁 该怎么办 求大神指点...
  7. 独立按键与蜂鸣器的c语言编写,生产实习报告--单片机电子琴.doc
  8. 缝隙天线简介[搬运]
  9. 4. gstimxv4l2src.c源码分析
  10. 客户信息管理系统类毕业论文文献有哪些?
  11. pygal:一款好用到爆的 Python 可视化利器,炫酷动态图轻松绘制
  12. 这个母亲节,带妈妈一起学习网络防骗术
  13. react的useMemo 和 vue3的computed
  14. 计算机房宣传标语,机房安全标语
  15. [求助] 不显示删除回复显示所有回复显示星级回复显示得分回复 操作系统Swap分区2G,Weblogic却还偶尔报swap分区不够的异常,导致生产偶尔宕机...
  16. AI高效学习路径总结
  17. java毕业论文云笔记_java毕业设计_springboot框架的云笔记记事本
  18. 2022艾灸展,艾健康展,艾棒展,山东艾制品展,艾绒纺织展
  19. Fiddler工具介绍
  20. 酷友网http://www.kuiu.cn 正式上线了!

热门文章

  1. 面向对象精要-理解对象
  2. ajax原理及其优缺点
  3. 二项分布和泊松分布的关系
  4. Yii框架 ajax案例
  5. 实现UILabel渐变色效果
  6. java基础学习总结——对象转型
  7. 说说成为顶级运营人员的一个先决条件:做事的霸气!
  8. 北京活动 | 新书首发手把手带你的产品从0开始验证一个新的业务
  9. 力扣(LeetCode)78
  10. 测试机的版本高于Xcode的版本的解决方法