一概述

  前面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. 【转】【完全开源】微信客户端.NET版

    [转][完全开源]微信客户端.NET版 目录 说明 功能 原理步骤 一些参考 说明 前两天比较闲,研究了一下web版微信.因为之前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什 ...

  3. CODEFORCES ROUND #740 ANALYSES BY TEAM:RED & BLACK

    A.Alyona and copybooks Problems: 给你一个数n和代价分别为a, b, c.数量不限的1, 2, 3,求将n凑成4的倍数的最小代价 Analysis: cj:取个模随便凑 ...

  4. Win7 VS2017 NASM编译FFMPEG(2018.12.22)

    今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...

  5. Wpf窗口中打开WinForm窗口

    获取wpf窗口对应的句柄窗口 using System; using System.Windows; using System.Windows.Interop; using IWin32Window ...

  6. 第45章:MongoDB-集群--Sharding(分片)--分片的管理

    ①列出所有的Shard db.runCommand({“listshards”:1}); ②查看分片信息 db.printShardingStatus(); ③判断是否分片 db.runCommand ...

  7. 20155205 郝博雅 《网络对抗技术》Exp1 PC平台逆向破解

    20155205 郝博雅 <网络对抗技术>Exp1 PC平台逆向破解 一.实验准备 1. 掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令& ...

  8. java.lang.RuntimeException: Invalid action class configuration that references an unknown class name

    ---恢复内容开始--- 转自 : https://www.cnblogs.com/javawebsoa/archive/2013/05/25/3098190.html java.lang.Runti ...

  9. recyclerview刷新

    https://blog.csdn.net/leejizhou/article/details/51179233 RecyclerView之更新UI数据的高级用法 https://www.cnblog ...

  10. Unicode vs. UTF-8 etc.

    目测是个老问题了.随便一搜,网上各种总结过.这里不辞啰嗦,尽量简洁的备忘一下. 几个链接,有道云笔记链接,都是知乎上几个问题的摘录:阮一峰的日志,1-5 还是值得参考,但是之后的部分则混淆了 Wind ...