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脚本中运算符


范例:


【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等的更多相关文章

  1. java JDK8 学习笔记——助教学习博客汇总

    java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...

  2. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  3. 20155234 2016-2017-2第十周《Java学习笔记》学习总结

    20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...

  4. 20155234 2610-2017-2第九周《Java学习笔记》学习总结

    20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...

  5. #学习笔记#e2e学习使用(二)

    前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...

  6. #学习笔记#e2e学习使用(一)

    本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...

  7. mybatis学习笔记之学习目录(1)

    mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发 ...

  8. Flutter学习笔记(5)--Dart运算符

    如需转载,请注明出处:Flutter学习笔记(5)--Dart运算符 先给出一个Dart运算符表,接下来在逐个解释和使用.如下:                            描述       ...

  9. C++基础 学习笔记五:重载之运算符重载

    C++基础 学习笔记五:重载之运算符重载 什么是运算符重载 用同一个运算符完成不同的功能即同一个运算符可以有不同的功能的方法叫做运算符重载.运算符重载是静态多态性的体现. 运算符重载的规则 重载公式 ...

  10. Vue学习笔记-rest_framework_jwt 学习

    一  使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7  (Windows x86- ...

随机推荐

  1. angular2+ 组件中用@import进来的css不起作用

    一般来说是作用域的问题,首先你应该先看标签内是否有angular2内置生成的自定义属性比如: 在我们的@Component中,这三个是基本的设置. 页面上的标签会生成带有 _nghost-c1 和  ...

  2. Beyond Globally Optimal: Focused Learning

    这里对WWW 2017文章<Beyond Globally Optimal: Focused Learning for Improved Recommendations>进行一个简单的分析 ...

  3. 【Java学习笔记之七】java函数的语法规则总结

    函数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则称作函数. ...

  4. Spring框架学习笔记(4)——配置bean more

    1.配置List属性 <!-- 配置List属性 --> <bean id="person4" class="com.broadtext.beans.c ...

  5. LuceneNet 实现快速大文件大数据查询

    做过站内搜索的朋友应该对Lucene.Net不陌生,因为用普通的sql  like查询肯定是不行的,太慢了. 首先说明的是--Lucene.Net只是一个全文检索开发包,不是一个成型的搜索引擎, 它的 ...

  6. Linux-vmware tools安装与cdrom挂载(转)

    昨天想直接复制虚拟机centos系统中命令行的内容到主机的txt文档上进行保存,发现不能实现虚拟机与主机之间的直接通讯,后来查资料发现原来是由于我的虚拟机没有安装vwmare tools的缘故. 一个 ...

  7. cesium编程入门(二)环境搭建

    环境搭建 环境搭建 编译 node 安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 安装完成后,打开命令行,输入:node -v,如果结果 ...

  8. 利用nginx 虚拟主机、请求转发实现不同端口web访问

    一个服务器上挂一个网站实在是有点浪费:一个服务器上可以放多个网站:可以开启nginx的虚拟主机功能:利用访问的路径或者域名不同访问不同的文件夹:例如: 1.一台服务器上放多个网站使用nginx的配置文 ...

  9. Java本地缓存解决方案其一(使用Google的CacheBuilder)

    前不久,业务实现上需要用到本地缓存来解决一些数据量相对较小但是频繁访问的数据,通过查找各种资料,找到了一种可以实现的方案--采用的是Google的CacheBuilder.下面是代码实现过程:1.首先 ...

  10. Spark算子--first、count、reduce、collect、lookup

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/4b8582c8dde1529abb11e4ccc8296171.html first.count.reduce ...