文档章节

shell scripts 知识点汇总

Adel
 Adel
发布于 2015/12/30 14:11
字数 639
阅读 28
收藏 3
  • scripts 的执行

基本上,一个 script 被执行的时候, bash 会据以判断执行的步骤为:

  1. 如果读取到一个 Enter 符号( CR ),就尝试开始执行该行命令;

  2. 如同前面 bash command 提到的,指令间的多个空白会被忽略掉;

  3. 而空白行也将被忽略掉!,并且 tab 也是不会被理会的!

  4. 至于如果一行的内容太多,则可以使用 \ 来延伸至下一行;

  5. 此外,使用最多的 # 可做为批注!任何加在 # 后面的字,将全部被视为批注文字而被忽略!

然后,在撰写一个 scripts 的时候,最好养成良好的习惯:

  1. 先宣告使用的 shell 为何?(特别留意这一点,在某些状况中,例如 /etc/crontab 情况下,如果没有宣告使用的 shell ,常常会出现错误讯息而导致 scripts 无法被执行呦!)

  2. 注明该 script 的内容功能、版本信息、作者、建文件日期等等

  3. 每一个大步骤的主要功能(也顺便提供自己未来修改之用!)

那么 scripts 这个档案要如何来执行呢?执行的方法有两种:

  • 一个是将该档案改成可以执行的属性,如chmod 755 scripts.file ,然后执行该档案;

  • 另一种则是直接以 sh 这个执行档来执行 script 的内容,如 sh scripts.file

大致上就是这样啦!

  • 卷标与运算符号:declare

[test @test  test]# declare [-afirx]
参数说明:
-a  :定义为数组 array
-f  :定义为函数 function 
-i  :定义为整数 integer
-r  :定义为『只读』
-x  :定义为透过环境输出变量

  • script 的参数的代号 

[root @test  test]# myscript opt1 opt2 opt3 opt4
         $0  $1 $2 $3  $4
  • 条件判断二:使用 case ...esac 的方式

case 种类方式(string) in         < ==开始阶段,那个种类方式可分成两种类型,通常使用 $1 这一种直接下达类型!
    种类方式一)
       程序执行段
       ;;                     <==种类方式一的结束符号!
    种类方式二)
       程序执行段
       ;;
    *)
       echo "Usage: {种类方式一|种类方式二}"    < ==列出可以利用的参数值!
       exit 1
esac                         <==这个 case 的设定结束处!
  • Script如何debug:

[test @test  test]# sh [-nvx] scripts
-n :不要执行 scripts ,查询 scripts 内的语法,若有错误则予以列出!
-v :在执行 scripts 之前,先将 scripts 的内容显示在屏幕上;
-x :将有使用到的 scripts 内容显示在屏幕上,与 -v 稍微不同!

本文转载自:

共有 人打赏支持
Adel
粉丝 10
博文 71
码字总数 61751
作品 0
海淀
程序员
《跟老男孩学Linux运维之shell编程实战》-第三章 shell变量知识进阶

本文讲解shell变量知识进阶。 以下为知识点的总结,关于练习,本文不不涉及,还需要各位小伙伴自己练习! 1.shell中的特殊位置参数变量,请见下表: 在企业场景下,“$?”的用法: (1)判断...

小鱼姑娘
06/26
0
0
Linux 终端的使用汇总(包括命令方式打开终端)

一、打开终端的方式 1.鼠标点右键--terminal,即可打开。 2.点任务栏的“application”里面的“terminal”打开 3.命令方式:Alt+F2后在出现"运行应用程序"中输入x-terminal-emulator(一般在你...

wyan117
2012/07/25
0
0
shell-菜单自动化软件部署

打印选择菜单,按照选择一键安装不同的Web服务。 示例菜单: [root@oldboy scripts]# shmenu.sh 1.[install lamp] 2.[install lnmp] 3.[exit] pls input the num you want: 要求: 1、当用户...

wangweihang
2017/05/11
0
0
1.4 创建虚拟机&1.5 安装CentOS7&1.6 配置ip(上)&1.7 配置ip(下)

1.4 创建虚拟机 知识点 虚拟机网络链接模式 桥连 直接将虚拟网卡桥接到一个物理网卡上面。需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主...

小丑鱼00
07/23
0
0
linux-shell面试题

由于工作的关系,收集了很多的shell面试题,有些比较有意思,有些纯粹是为折磨人用的题目。有的看完会心一笑,有的看了之后会以为是几年前开发的面试题。不知道是会的人多了,还是有意的为难...

散居江湖
2012/05/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部