一概述

  前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识。在大量编辑shell脚本前,先来学习下一些基本概念。

  1.1    使用多个命令
    Shell可以让多个命令串起来,一次执行完成,可以把它们放在同一行中,用分号隔开,如下所示:
      
    上面就是一个简单的脚本了,用到了两个bash shell命令,但每次运行之前,都必须在命令提示符下输入整个命令。如果将命令组合成一个简单的文本文件,需要时运行这个文本文件就行了。

  1.2    创建shell 脚本文件
    将shell 命令放到文本文件中,首先使用vim编辑器创建一个文件,然后在文件中写入命令。下面使用vim test1新建一个文件,按(i)键编辑脚本,保存文件(:wq)退出。解说下这几行:第一行 #! 会告诉shell,是使用的/bin/bash 路径下的bash  shell来运行脚本。第二行 #是用作注释行,shell不会处理。第三四行是命令。
      
    test1脚本文件创建好了,通过ls -l 命令会发现hsr用户没有执行权限,如下图所示:
      
    试试下面运行test1新脚本,如下图提示:未找到命令....。这是因为bash shell 找不到你的脚本文件,有二个方法:一是前面讲到过环境变量PATH,将脚本复制到PATH目录下,二是使用绝对路径来执行脚本。
      
    查看PATH的多个shell执行路径。把test1 移到/usr/local/bin/test1下,如下图提示:提示权限不够。关于分配权限可以查看17篇。
      
    切换到root下,文件移动成功,但执行还是权限不够。
      
    再查看到root用户对/usr/local/bin/test1文件的权限,发现也没有执行权限。
      
    给这个test1文件赋三组用户最大权限 777,再执行test1脚本成功了,最后再查看下权限,执行权限也有了。
      
    下面再使用绝对路径来执行test1文件脚本,也成功了,如下图所示:
      

  1.3 脚本中显示信息

    与很多控制台一样,需要输出信息提示用户在做什么,或怎么做。在shell中使用echo命令,与c语言的print,c#的console等一样的命令。下图是新建的一个test2脚本文件内容。
      
    下图编辑保存test2脚本文件后,可文件权限,使用绝对路径输出,显示了echo打印的信息。
      
    如果想把文件字符串和命令输出显示在同一行中,可以使用echo -n参数,如下所示:
      
      

 

Linux编程 20 shell编程(shell脚本创建,echo显示信息)的更多相关文章

  1. 【转】shell脚本中echo显示内容带颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下:   echo -e "\033[41;36m something here \033[0m&qu ...

  2. shell脚本中echo显示内容带颜色

    转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...

  3. 【转】shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色  

  4. shell脚本中echo显示内容带颜色显示

    格式如下 : echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文 ...

  5. Shell执行将脚本里的变量打印到指定日志文件

    首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...

  6. Linux系统编程(15)——shell脚本语法

    Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 s ...

  7. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  8. ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas

    ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...

  9. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

随机推荐

  1. Servers无法打开

    有时候打开MyEclipse莫名Servers窗口挂掉, 出现"Could Not Create The View :An Unexpected Exception Was Thrown&q ...

  2. IE 11和const的兼容问题

    说好的IE11兼容javascript中的常量类型 const 呢 ?可能并没有完全兼容 项目中遇到一个问题,采用google浏览器访问没问题,在本地jetty启动,IE11也可以正常访问,然而当我将 ...

  3. shell脚本编写遍历某一目录下的所有文件

    遍历/root/321321/目录显示里面的所有文件 #!/bin/bash dir=`ls /root//` #定义遍历的目录 for i in $dir do echo $i done

  4. 在datasnap 中使用unidac 访问数据(客户端)

    前面我们讲了如何使用unidac 在datasnap 的服务端访问数据库,今天大概讲一下客户端如何访问 前面做的服务器?其实这个客户端适合任何datasnap 服务端. 首先我们建一个应用,并加入一个 ...

  5. JPA学习-03

    一.单向一对多 特点:性能差,不怎么用,有集合默认懒加载 @OneToMany 1.private Set<T> t = new HashSet<>() 2.private L ...

  6. HTML表单标签

    <form>标签 1.在HTML中,<form></form>标记对用来创建一个表单,即定义表单的开始和结束位置,在标记对之间的一切都属于表单的内容.每个表单元素开 ...

  7. appium 1.6.x版本去除安装Unlock、Setting

    (appium目录不知道可以查看appium运行日志) 修改目录/usr/local/lib/node_modules/appium/node_modules/appium-android-drive ...

  8. Android逆向破解表单注册程序

    Android逆向破解表单注册程序 Android开发 ADT: android studio(as) 程序界面如下,注册码为6位随机数字,注册成功时弹出通知注册成功,注册失败时弹出通知注册失败. 布 ...

  9. Spring——事务

    Spring事务 事务的ACID特性 原子性(Atomicity):在事务中的操作,要么都执行,要么都不执行! 一致性(Consistency):数据从一种状态,同时到达另一种状态. 持久性(Dura ...

  10. pair在vector和map中的使用

    #include <iostream> #include <cstdio> #include <cstring> #include <stack> #i ...