zoukankan      html  css  js  c++  java
  • 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    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.

    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


    shell脚本中运算符


    范例:


     

  • 相关阅读:
    sessionid如何产生?由谁产生?保存在哪里?
    springmvc原理
    java基础面试题
    mysql数据库去重复
    git安装和初次使用
    String的按值传递,java传参都是传值
    sublime Text3使用笔记
    git命令使用记录
    Git:错误:error:src refspec master does not match any
    java并发编程实战学习(3)--基础构建模块
  • 原文地址:https://www.cnblogs.com/xiongyunqi/p/3735813.html
Copyright © 2011-2022 走看看