1 学习shell的目的性
写之前我们先来搞清楚为什么要学shell,学习要有目的性
shell简单、灵活、高效,特别适合处理一些系统管理方面的小问题
shell可以实现自动化管理,让系统管理员的工作变得容易、简单、高效
shell脚本可移植性好,在unix/linux系统中可灵活移植,几乎不用任何设置就能正常运行
shell脚本可轻松方便读取和修改源代码,不需要编译
掌握shell可以帮你解决一些故障问题,比如脚本引起的故障问题
掌握shell是一个中级以上系统工程师必需要会的
掌握shell是你系统管理进阶的必经之路
掌握shell是你面试更高级职位的一块敲门砖
2 那什么时候不使用Shell 脚本?
资源密集型的任务,尤其在需要考虑效率时(比如排序,hash 等)
需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理)
有跨平台移植需求(一般使用C 或Java)
复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等)
对于影响系统全局性的关键任务应用。
对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵,破解,恶意破坏等等.
项目由连串的依赖的各个部分组成。
需要大规模的文件操作
需要多维数组的支持
需要数据结构的支持,比如链表或数等数据结构
需要产生或操作图形化界面 GUI
需要直接操作系统硬件
需要 I/O 或socket 接口
需要使用库或者遗留下来的老代码的接口
私人的,闭源的应用(shell 脚本把代码就放在文本文件中,全世界都能看到)
 如果你的应用符合上边的任意一条,那么就考虑一下更强大的语言吧--或许是Perl,Python,Ruby, 或者是更高层次的编译语言比如C/C++,Java.

3 shell里的特殊字符
和其他编程语言一样,shell里也有特殊字符。常见的有美元符号($),反斜线(\)和引号
1。美元符号

美元符号表示变量替换,即用其后面指定的变量的值来代替变量。反斜线“\”为转义字符,转义字符告诉shell不要对其后面的那个字符进行特殊处理,只是当做普通字符。而shell下的引号情况比较复杂,分为三种:双引号("),单引号(')和倒引号(`)。他们的作用都不尽相同,以下一一说明。

2。双引号(")

双引号括起来的字符除$,倒引号(`)和反斜线(\)仍保留其特殊功能外,其余字符均作为普通字符对待。

3。单引号(')

由单引号括起来的字符都作为普通字符出现。

4。倒引号(`)

倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令,并以它的标准输出结果取代整个引号部分

示例1的代码及输出如下:

#echo "My current directory is `pwd` and logname is $LOGNAME"【双引号中的倒引号和美元符号保持原来的功能】

My current directory is /root and logname is root

示例2的代码及输出如下:

#echo "My current directory is `pwd` and logname is \$LOGNAME"【双引号中的转义字符保持原来的功能】

My current directory is /root and logname is $LOGNAME

示例3的代码及输出如下:

#echo 'My current directory is `pwd` and logname is $LOGNAME'【单引号里面的内容不变】

My current directory is `pwd`and logname is $LOGNAME

4 shell脚本中运算符


范例:


最新文章

  1. Angular JS 学习之过滤器
  2. (一) ARM 内存SDRAM 讲解
  3. SharePoint DateTimeControl 使用
  4. linux下的module_param()解释【转】
  5. commonJS — 事件处理(for Event)
  6. Knockout.js 初探
  7. 【HDOJ】2459 Maximum repetition substring
  8. 在eclipse中部署发布web项目 和 更改eclipseweb项目发布的路径
  9. CSS多级数字序号的目录列表(类似3.3.1.这样的列表序号)
  10. UVALive 4123 Glenbow Museum (组合数学)
  11. ajax创建对象
  12. sql查询 数据库 表 字段 等
  13. 深入浅出 Java Concurrency 锁机制 : AQS
  14. lintcode.44 最小子数组
  15. pytorch实现DCGAN、pix2pix、DiscoGAN、CycleGAN、BEGAN以及VAE
  16. 基于C++11的线程池
  17. Linux - script练习
  18. C# 获取当前年份的周期,周期所在日期范围
  19. mysql索引原理
  20. C# 给现有PDF文档添加页眉、页脚

热门文章

  1. inline函数不能在for循环中使用的原因
  2. python通过getopt模块获取执行命令参数
  3. 编写Qt Designer自定义控件
  4. python的运维交流学习笔记
  5. mysql 在B数据库下 创建一个与A数据库中一样的表
  6. java中的重载与重写
  7. 【JavaScript for循环实例】
  8. 在实战中使用Sass和Compass
  9. XOR算法的原理和实现
  10. Codeforces 777B Game of Credit Cards