一概述

  前面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. PM学习梳理--需求管理

  2. 通俗易懂--SVM算法讲解(算法+案例)

    1.SVM讲解 新闻分类案例 SVM是一个很复杂的算法,不是一篇博文就能够讲完的,所以此篇的定位是初学者能够接受的程度,并且讲的都是SVM的一种思想,通过此篇能够使读着会使用SVM就行,具体SVM的推 ...

  3. Desktop Central —— Windows 管理工具

    Desktop Central —— Windows 管理工具 定期维护对于保持系统性能平稳必不可少.诸如磁盘检查.磁盘碎片整理程序之类的工具在系统维护中至关重要.因为管理员很难定期手动执行维护. D ...

  4. 学习Acegi应用到实际项目中(6)

    在企业应用中,用户的用户名.密码和角色等信息一般存放在RDBMS(关系数据库)中.前面几节我们采用的是InMemoryDaoImpl,即基于内存的存放方式.这节我们将采用RDBMS存储用户信息. Us ...

  5. centos 6.5升级openssl

    1.下载升级版本 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz 2.安装 zlib zlib-devel yum -y insta ...

  6. 用idea部署maven-web项目

    项目部署时,需要加一步: 我们需要添加一个archetypeCatalog=internal.这个参数的意义是让这个maven项目的骨架不要到远程下载而是本地获取.如果你没加这个参数,那么项目创建可能 ...

  7. Notes : <Hands-on ML with Sklearn & TF> Chapter 7

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  8. SVN服务端和客户端的说明与操作

    版权声明:本文为博主原创文章,转载请注明原文出处. https://blog.csdn.net/zzfenglin/article/details/50936888 本节我们进一步了解SVN服务端和客 ...

  9. 11、OpenCV实现图像的灰度变换

    1.灰度变换的基本概念 灰度变换指对图像的单个像素进行操作,主要以对比度和阈值处理为目的.其变换形式如下: s=T(r) 其中,T是灰度变换函数:r是变换前的灰度:s是变换后的像素.图像灰度变换的有以 ...

  10. PyCharm远程开发和调试

    PyCharm进行远程开发 1.背景 在Windows开发Python或Web应用程序,但是它们最后需要在linux上面来运行 2.解决办法 2.1 使用PyCharm内置支持的Vagrant 2.2 ...