1、初探shell


  1. #!/bin/bash
  2. echo -e 'hello \nworld'

执行结果

echo 是打印输出字符,-e选项是开启转义功能

注意:

在windows下编写的shell脚本直接拿到linux下是无法执行的,因为两个的行结束标志不同

  • 直接将windows下的文件copy到linux,查看其格式

  

  在图中的bash后面是一个回车,通过cat -A 来查看文件中所有字符时可看到这个回车是^M$

  • 查看linux下的回车

  

两个的行结束标志不同,所以会导致shell脚本执行不成功

  • 解决方式,通过dos2unix来进行格式转换

  

2.历史命令



  • 执行history

  

  想要执行哪条命令使用 !行号

  甚至用!字符串,如!hist都可以执行该命令

3.输出重定向


  • cat hello.sh > he.sh将标准输出重定向到he.sh,先清空he.hs再将结果输出到he.sh

  • cat hello.sh >> he.sh 以追加的方式输出到he.sh中
  • cat hello.sh 2> he.sh 将标准出错输出到文件中
  • cat hello.sh  &>  hello.sh 将正确和错误都写到文件中
  • ls >> tfg 2>>efg   将命令的正确结果保存到tfg,将错误结果保存早efg中

4.shell中的通配符


特殊字符

  ‘bbb\nbbb$name’   单引号中的字符都被认为是普通字符

  “bbbb\nbbb$name”  双引号中的字符被赋予特殊含义,如\n表示转义,$name表示一个变量

$() 将会引用系统命令,如 echo $(date) 与 date的效果一样

5.shell中的变量


  • 变量值的拼接

  name =  123

  name = ${name}456

  这时name的值为123

  • 接受用户向sh脚本中传递的值

  

  一个简单的例子

  

  

  这里进行了数字相加运算,两个变量在数值相加的时候必须使用$(())将其包起来

  •  $* 与 $@

  $*是将输入参数看成一个整体,像字符串;而$@将参数分开对待,就像一个数组

  

  

6、预定义变量


  

  

  代码中的& 是让find命令在后台运行

  

shell编程之基础的更多相关文章

  1. Linux学习笔记(17) Shell编程之基础

    1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...

  2. Shell编程菜鸟基础入门笔记

    Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...

  3. Shell编程入门基础上

    前言 为什么学 Shell Shell 脚本语言是实现 Linux/UNIX 系统管理及自动化运维所必备的重要工具, Linux/UNIX 系统的底层及基础应用软件的核心大都涉及 Shell 脚本的内 ...

  4. shell编程awk基础介绍

    awk介绍 报告生成器,格式化文本输出 处理机制类似sed命令,自带循环处理    读入一行处理一行然后自动读取下一行再进行处理 sed命令换行的标识是固定的,只能是回车换行.    awk里面的换行 ...

  5. Shell编程-控制结构 | 基础篇

    if-then-else分支结构 if-then-else是一种基于条件测试结果的流程控制结构.如果测试结果为真,则执行控制结构中相应的命令列表:否则将进行另外一个条件测试或者退出该控制结构. if- ...

  6. Shell编程——bash基础知识

    # Bash中自动补全时忽略大小写 # 编辑~/.inputrc(没有的话,就新建一个),在最后加一行: set completion-ignore-case on # 若要用方向键Up,Down来搜 ...

  7. 第一部分shell编程1基础知识

    ls etc/init.d/ shell脚本的路径 ls /usr/local/apache2/ ls /usr/local/apache2/bin/apachectl 1. shell特性命令历史 ...

  8. shell编程之基础知识1

    1.shell脚本的基本格式 #!bin/bash   ->看到这个就是shell脚本 #filename:test.sh ->脚本名称 #auto echo hello world -& ...

  9. Linux基础学习(11)--Shell编程

    第十一章——Shell编程 一.基础正则表达式 1.正则表达式与通配符(*,?,[ ]): 2.基础正则表达式: 二.字符截取命令 1.cut字段提取命令: 空格分割时,不知道空格有多少个,无法分割行 ...

随机推荐

  1. nyoj 170 网络的可靠性

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=170 思路:统计每个节点的度,将度为1的节点消去所需要的最少的边即为答案. 代码: #in ...

  2. 百度地图简单使用——添加折线,圆形等(html,js)

    地图覆盖物概述 所有叠加或覆盖到地图的内容,我们统称为地图覆盖物.如标注.矢量图形元素(包括:折线和多边形和圆).信息窗口等.覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动. 地图A ...

  3. Linux下集群的搭建

    1.集群的简介: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术. 如果一个事情 ...

  4. 在VMware Workstation11虚拟机上安装黑苹果

    图文详解如何在VMware Workstation11虚拟机上安装黑苹果Mac OS X 10.10系统-网络教程与技术 -亦是美网络 http://www.yishimei.cn/network/5 ...

  5. AMO olap Test C# generate tsql and mdx

    通过AMO访问online的cube,生成等值的TSql和mdx 自动生成等值的TSQL和MDX进行Cube测试.其中难度比较大的部分是拼接TSQL. 暂时不处理calculations,只除理met ...

  6. 深搜+DP剪枝 codevs 1047 邮票面值设计

    codevs 1047 邮票面值设计 1999年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description ...

  7. 『转载』使用TortoiseSVN客户端

    原文地址:https://www.sinacloud.com/doc/sae/tutorial/code-deploy.html#shi-yong-git-ke-hu-duan TortoiseSVN ...

  8. Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis

    Redis真是好,其中的键值用起来真心强大啊有木有, 之前的文章讲过搭建了redis集群 那么咋们该如何调用单机版的redis以及集群版的redis来使用缓存服务呢? 先讲讲单机版的,单机版redis ...

  9. Hibernate Java、Hibernate、SQL 之间数据类型转换

    Hibernate映射类型 Java类型 标准SQL类型  integer  java.lang.Integer  integer  long  java.lang.Long  bigint  sho ...

  10. java22 - 1 多线程之 单线程和多线程的图解