一概述

  前面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. thinkpadE系列重装系统:u盘启动

    一.下载深度装机大师,制作启动u盘. 二.重启电脑:按F1;进入bios设置:     thinkpad e430c笔记本使用u盘装系统时无法使用u盘启动,这是由于thinkpad e430c笔记本u ...

  2. vuex的getters处理数据

    getters是用来处理state里的数据的 getters传递一个值state 例子: store.js import Vue from 'vue' import Vuex from 'vuex' ...

  3. keil5到iar8的使用配置迁移

      1.关于头文件的包含. keil: ALT+F7——>C/C++ IAR:ALT+F7——>C/C++ Compiler——>Preprocessor,(高版本汇编需要包含的头文 ...

  4. DOTween的基本用法

    首先声明一点,不要简单的认为 DOTween 只能用在 Transform 组件上完成一些简单的动画,或者是完成一些 UI 动画,DOTween 的用途是很广的,unity中有很多组件都可以使用 DO ...

  5. 手机端-万种bt在线观看器,安卓正版下载

    安卓正版下载, 点击下载 无广告,完全免费!寻找任何你想要的资源!

  6. 基于jmeter的性能测试平台(一)分布式jmeter搭建

    (1)概述 一台windows虚拟机作为controller,3台Linux虚拟机作为agent. 第一步是在所有虚拟机上安装JDK,版本最好是一样的,然后就是下载安装jmeter,网上资料很多这里不 ...

  7. Visual Studio Code and local web server

    It is the start of a New Year and you have decided to try Visual Studio Code, good resolution! One o ...

  8. Java实现对文本文件MD5加密并ftp传送到远程主机目录

    需求描述: 客户出完账之后需要把出账的数据以文本文件的方式传送给收入管理系统,客户以前是通过本地的一个工具软件上传的,由于安全监管的原因,不允许在本地使用工具上传,因此客户希望我们在已经上线使用的系统 ...

  9. 如何高效地写CSS--等以后有空多加总结一下

    CSS写的并不多,如果从零开始的项目,自己一定想搬砖来得容易点.CSS编写一定有其工程化的方法,来时编写更加有效率. 考虑将CSS的预处理LESS.Sass或Stylus引入,或者将CSS的后处理Po ...

  10. VS code的疑惑之处

    作为一个新手,我充满疑惑 eg:下载了git但无法使用匹配 然后在各位博主的详细解释下知道 VS code更新后的git.path被格式化了: so需要进行路径覆盖. 在这之后我的终端依旧出现问题   ...